gpt4 book ai didi

extjs - ExtJS 4 中的 ID 与相对路径

转载 作者:行者123 更新时间:2023-12-04 18:15:52 25 4
gpt4 key购买 nike

在 ExtJS 4 中获取组件有两种主要方式。通过全局 ID 或通过相对路径。

ID 方法的好处是可以找到独立于 View 中实际位置的任何组件。所以当 View 发生变化时,系统仍然可以工作。但是随着系统变得越来越大,我需要使用带有命名空间的 ID 并实现一些机制来为组件的多个实例生成唯一 ID。

当我对组件查询使用相对导航时,我不必担心 ID,只需导航,例如,从单击的按钮到我想要更改的网格并进行操作。但是当 View 发生变化时,查询可能不再起作用并且系统中断。

所以这两种方法似乎都不是最理想的。

有没有更好的方法?

在这里阅读答案后,我正在使用这种方法:

在 View 中,我使用 lid 定义我的组件。 (本地 ID)必须是唯一的它的 sibling ,但不是全局唯一的,如 id .

现在我可以使用这样的查询:

someWindowInstances[0].query( 'button[lid=myButton]' );

...

someWindowInstances[n].query( 'button[lid=myButton]' );

这使“myButton”可以位于窗口中的任何位置,如果窗口 View 发生变化,我仍然可以找到它。

最佳答案

如果通过相对路径您的意思是 query() 方法,那么这就是要走的路。不要忘记,您不仅可以通过 DOM 属性查询组件,还可以通过其 xtype 和基本上任何对象属性来查询组件。像这样:

var panel = new Ext.panel.Panel({
items: [{
xtype: 'button',
prop: 'foo'
}],

renderTo: Ext.getBody()
});

var button = panel.query('button[prop="foo"]')[0];

实际上,这是 Ext JS 4 最强大但鲜为人知的特性之一。具有描述性,使用 query() 而不是 Ext.getCmp(),您将获得更好的代码:易于阅读和维护。

关于extjs - ExtJS 4 中的 ID 与相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11737701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com