别名替换组件上的 ItemId?

Alias replaces ItemId on a component?

我正在阅读文档,它指出以

的形式设置别名
   '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,这是一个副作用?

创建对象时,别名用作 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"]');