我使用 ExtJs 4.1 和 DeftJs。
当同时使用相同视图的多个实例时,id: 'abc'
由于所有实例都将具有相同的 id,因此在处理组件时会出现问题。
那么如何命名 id 以防止这种情况发生呢?
一种选择是动态创建组件。
我更喜欢的另一个选择是仅通过某个视图的 id 调用组件,例如:
this.getView.getComponent('x').getId('abc')
我使用 ExtJs 4.1 和 DeftJs。
当同时使用相同视图的多个实例时,id: 'abc'
由于所有实例都将具有相同的 id,因此在处理组件时会出现问题。
那么如何命名 id 以防止这种情况发生呢?
一种选择是动态创建组件。
我更喜欢的另一个选择是仅通过某个视图的 id 调用组件,例如:
this.getView.getComponent('x').getId('abc')
如果您可以将父元素设置为唯一 id,则可以在子项上使用 itemId 属性。sencha 文档中的示例(取自它下面的链接):
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
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.AbstractComponent-cfg-itemId
我尽量避免使用全局 id 并使用this.getView().getComponent()
控制器来访问我的视图。如有必要,我还会在我的 id 名称中使用唯一的字符串。