别名替换组件上的ItemId?

时间:2015-10-07 12:57:35

标签: javascript extjs extjs4 extjs4.2

我正在阅读该文档,并声明以

的形式设置别名
   'widget.xxx.yyy' 

然后xtype将自动设置为

   'xxx.yyy'

我遇到的问题是我已经设置了别名和itemId。似乎itemId正在使用别名中的内容减去widget.部分。

这是一个例子

Ext.define('TestApp.view.product.Panel', {
    extend : 'Ext.grid.Panel',
    alias: 'widget.productPanel',
    itemId: 'miscProductPanel',

所以我正在检查调试器,我注意到别名是正确的,但是itemId现在似乎等于" productPanel"而不是" miscProductPanel"。

任何人都可以确认发生了什么吗?

创建别名的真正意义是什么?是否有创建别名的优点。据我所知,它似乎覆盖了我在文档中无法找到这是一个副作用的itemID吗?

1 个答案:

答案 0 :(得分:4)

在创建对象时,别名用作xtype。 ItemId用于管理相同类型的不同对象。

例如:

Ext.define('MyApp.MyNewButton', {
   extend : 'Ext.button.Button',
   alias: 'widget.myNewButton'
   ...
});

当我在面板上创建按钮时,我会这样做:

var myPanel = Ext.create('Ext.panel.Panel',{
    ...
    ...
    items:[{
       xtype:'myNewButton',
       itemId:'startBtn'
    },{
       xtype:'myNewButton',
       itemId:'stoptBtn'
    }]
});

您可以使用itemId获取每个按钮。 例如:

var startBtn = myPanel.down('myNewButton[itemId="startBtn"]');
var stopBtn = myPanel.down('myNewButton[itemId="stopBtn"]');