2
我有這這樣定義的菜單:ExtJS的菜單插入新的項目與覆蓋
Ext.define('MyApp.FileBrowserContextMenu', {
extend: 'Ext.menu.Menu',
initComponent: function() {
var me = this;
Ext.applyIf(me, {
items: [
{
xtype: 'menuitem',
text: 'Edit',
listeners: {
click: {
fn: me.onMenuitemClick,
scope: me
}
}
},
]
});
me.callParent(arguments);
},
onMenuitemClick: function(item, e, options) {
var server = this.record;
var win = Ext.create('widget.ServerWindow', {
record: server
});
win.show();
}
});
我想定義後,添加新的項目,所以我嘗試這樣的:
首先我定義的新菜單項:
Ext.define('MyApp.GitMenuItem', {
extend: 'Ext.menu.Item',
alias: 'widget.gitmenuitem',
text: 'Git',
initComponent: function() {
var me = this;
Ext.applyIf(me, {
menu: {
xtype: 'menu',
items: [
{
xtype: 'menuitem',
text: 'Commit',
listeners: {
click: {
fn: me.onMenuitemClick,
scope: me
}
}
},
]
}
});
me.callParent(arguments);
},
onMenuitemClick: function(item, e, options) {
},
});
然後我嘗試將新的菜單項:
Ext.override(MyApp.FileBrowserContextMenu, {
initComponent: function() {
var me = this;
this.callParent();
me.items.items.push(Ext.create('widget.gitmenuitem'));
}
});
看來工作,因爲新菜單項出現,但是當我走了過來,然後新的項目應該出現的,但我得到這個錯誤:
遺漏的類型錯誤:無法設置屬性「activeChild」的未定義
任何ideads?
可以把它弄出來嗎? –
我現在正在做,準備就會發布。 – Charles
你究竟想達到什麼目的?看起來像你選擇不是非常直接的方式來解決出租車解析不同的東西:) – sha