类定义中的Extjs itemId

code4jhon

在类定义上使用itemId配置(而不是实例化)是一种不好的做法吗?

是否有一些官方文档来支持它?还是只是出于意见考虑?

也许我缺少一些逻辑,这显然证明这是一种不良做法。

Ext.define('SomeApp.view.SomeFolder.MySpecialComponent',{
    extend: 'Ext.panel.Panel',
    itemId: 'specialComponent'
    // ...
});

因为我确实知道,如果存在多个实例,并且将itemId用作选择器,则我将同时获得两个实例。但是,可以说我知道一次不会有超过1个实例,也可以说实例化可以在3个不同的地方进行,我不想在这3个不同的地方添加itemId,我当然不会希望这些itemId有所不同。

那么在类定义中使用itemId配置是否有正式的立场?

马特

Ext.AbstractComponent.itemId的文档中

当没有对象引用可用时,itemId可以用作获取对组件的引用的替代方法。与其在Ext.getCmp中使用id,而不是在Ext.container.Container.getComponent中使用itemId,它将检索itemId或id。由于itemId是容器内部MixedCollection的索引,因此itemId的作用域是容器的本地范围-避免与需要唯一ID的Ext.ComponentManager发生潜在冲突。

由于itemId用作索引,因此它在容器内必须是唯一的。如果将具有相同itemId的任何组件的两个实例添加到同一容器,则第二个实例实际上将覆盖第一个实例。

您可以在此小提琴中观察到此行为:https : //fiddle.sencha.com/#fiddle/m2n

特别是考虑到这一事实,我认为直接在类定义中指定itemId确实没有意义,因为:

  • 如果要在同一容器中添加此组件的多个实例,那么它将根本无法工作(除非您在实例化时再次覆盖itemId)。
  • 如果不是这种情况,那么您可能要考虑完全不指定itemId。相反,您可以通过其xtype获取实例:

    // assuming the xtype is 'specialcomponent'
    container.query('specialcomponent')
    
  • 实际上,您会在实例化时隐藏itemId,这使得更难理解它的来源

    var ct = Ext.create('Ext.container.Container', {
        items: [{
            // not clear that this will have itemId 'specialComponent'
            xtype: 'specialcomponent'
        },{
            xtype: 'panel',
            itemId: 'somePanel'
        }];
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

类定义中的Extjs itemId

来自分类Dev

使用itemId获取组件Extjs

来自分类Dev

如何从ExtJS中的CartesianChart对象中按itemId获取工具

来自分类Dev

无法读取未定义的属性“ ItemID”

来自分类Dev

在Extjs中使用Id和itemId访问组件

来自分类Dev

MSAccess:从Recordsetclone中获取ItemID到新表中?

来自分类Dev

使用Rails Vacuum gem在Amazon Product Api中获取ItemId

来自分类Dev

从存储过程中的订单行表更新ItemId

来自分类Dev

如何在php中通过ItemID获取值ItemSum?

来自分类Dev

我有一个由itemid定义的组件,该如何在控制器中获取它

来自分类Dev

Sencha Touch中的id和itemID之间有什么区别?

来自分类Dev

从STRING获取照片的ItemID

来自分类Dev

Yodlee TransactionView和ItemId

来自分类Dev

无法使用ItemId提取组件

来自分类Dev

如何使用BaseAdapter从sqlite获取ItemID?

来自分类Dev

在前端Joomla 2.5上显示文章ID +页面itemid:

来自分类Dev

Vaadin table.select(itemId)无法正常工作

来自分类Dev

EWS托管API查找具有ItemID的项目

来自分类Dev

Metro GridView鼠标位于其上的绑定ItemID

来自分类Dev

在前端Joomla 2.5上显示文章ID +页面itemid:

来自分类Dev

如何从浏览器获取itemID并回显输入?

来自分类Dev

Joomla重定向以正确的itemId开头的所有URL

来自分类Dev

EWS:与所有标识符相比,ItemId是什么?

来自分类Dev

Exchange 服务器:ItemId.UniqueId 正在更改

来自分类Dev

带有斜杠的 Outlook OfficeJS itemID 从 MS 图中返回错误

来自分类Dev

ExtJS 5:获取已定义类的initialConfig

来自分类Dev

在ExtJs 5应用程序中预加载ExtJs类

来自分类Dev

extjs覆盖动作类中的函数

来自分类Dev

通知客户有关新创建的itemId的最佳实践

Related 相关文章

热门标签

归档