Javascript ExtJs-如何在使用多个实例时设置组件id
我使用extjs4.1和DeftJs 当同时使用同一视图的多个实例时,在给定Javascript ExtJs-如何在使用多个实例时设置组件id,javascript,model-view-controller,extjs,Javascript,Model View Controller,Extjs,我使用extjs4.1和DeftJs 当同时使用同一视图的多个实例时,在给定id:'abc'的情况下寻址组件时会出现问题,因为所有实例都具有相同的id 那么如何命名ID来防止这种情况呢 一个选项是动态创建组件 我更喜欢的另一个选项是仅通过特定视图的id调用组件,如: this.getView.getComponent('x').getId('abc')如果可以将父元素设置为唯一id,则可以对子项使用itemId属性。sencha文档中的示例(摘自下面的链接): 我试图避免使用全局ID,并从控制器
id:'abc'
的情况下寻址组件时会出现问题,因为所有实例都具有相同的id
那么如何命名ID来防止这种情况呢
一个选项是动态创建组件
我更喜欢的另一个选项是仅通过特定视图的id调用组件,如:
this.getView.getComponent('x').getId('abc')
如果可以将父元素设置为唯一id,则可以对子项使用itemId属性。sencha文档中的示例(摘自下面的链接):
我试图避免使用全局ID,并从控制器中使用
this.getView().getComponent()
来访问我的视图。如有必要,我会在id名称中另外使用一个唯一的字符串。谢谢,但这与mvc和同一视图/控制器的许多实例无关,因为我无法在此类视图中设置唯一的id。我想通过其控制器处理特定视图。
var c = new Ext.panel.Panel({ //
height: 300,
renderTo: document.body,
layout: 'auto',
items: [
{
itemId: 'p1',
title: 'Panel 1',
height: 150
},
{
itemId: 'p2',
title: 'Panel 2',
height: 150
}
]
})
p1 = c.getComponent('p1'); // not the same as Ext.getCmp()
p2 = p1.ownerCt.getComponent('p2'); // reference via a sibling