在 ExtJS 4 中获取组件有两种主要方式。通过全局 ID 或通过相对路径。
ID 方法的好处是可以找到独立于视图中实际位置的任何组件。所以当视图发生变化时,系统仍然可以工作。但是随着系统变得越来越大,我需要使用带有命名空间的 ID 并实现一些机制来为组件的多个实例生成唯一 ID。
当我对组件查询使用相对导航时,我不必担心 ID,只需导航,例如,从单击的按钮到我想要更改的网格并进行操作。但是当视图发生变化时,查询可能不再起作用并且系统中断。
所以这两种方法似乎都不是最理想的。
有没有更好的方法?
在这里阅读答案后,我正在使用这种方法:
在视图中,我使用(本地 ID)定义我的组件,该组件lid
必须是唯一的,但不是全局唯一的,例如id
.
现在我可以使用这样的查询:
someWindowInstances[0].query( 'button[lid=myButton]' );
...
someWindowInstances[n].query( 'button[lid=myButton]' );
这使“myButton”可以位于窗口中的任何位置,如果窗口视图发生变化,我仍然可以找到它。