Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJs-如何在使用多个实例时设置组件id_Javascript_Model View Controller_Extjs - Fatal编程技术网

Javascript ExtJs-如何在使用多个实例时设置组件id

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,并从控制器

我使用extjs4.1和DeftJs

当同时使用同一视图的多个实例时,在给定
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