2

我使用 ExtJs 4.1 和 DeftJs。

当同时使用相同视图的多个实例时,id: 'abc'由于所有实例都将具有相同的 id,因此在处理组件时会出现问题。

那么如何命名 id 以防止这种情况发生呢?

一种选择是动态创建组件。

我更喜欢的另一个选择是仅通过某个视图的 id 调用组件,例如:

this.getView.getComponent('x').getId('abc')

4

2 回答 2

3

如果您可以将父元素设置为唯一 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

于 2012-06-06T11:57:38.057 回答
0

我尽量避免使用全局 id 并使用this.getView().getComponent()控制器来访问我的视图。如有必要,我还会在我的 id 名称中使用唯一的字符串。

于 2012-06-21T09:30:31.057 回答