我是极品中的菜鸟并且遇到了问题
我创建了一个应用程序
这是我的控制器的init
功能。
init: function () {
console.log('initialized filesystem controller');
this.control({
'filesystemtree': {
itemdblclick: this.OpenFile,
select: this.NodeSelected
},
'filesystemtree filesystemmenu button[text="Delete"]': {
click:this.DeleteButtonClicked
}
});
}
这是xtype : 'filesystemtree'
Ext.define('IDE.view.fileSystem.List', {
extend: 'Ext.tree.Panel',
alias: 'widget.filesystemtree',
title: 'Navigation2',
store: 'FileSystems',
rootVisible: 'false',
dockedItems: [{
xtype:'filesystemmenu',
dock:'top'
}],
initComponent: function () {
console.log('file system tree initializing');
this.callParent(arguments);
}
})
这是xtype:filesystemmenu
停靠在filesystemtree
Ext.define('IDE.view.fileSystem.FileSystemMenu', {
extend: 'Ext.toolbar.Toolbar',
alias: 'widget.filesystemmenu',
items: [
{
xtype: 'splitbutton',
text: 'Menu',
menu: new Ext.menu.Menu({
items: [
{
text: 'Delete'
},
{
text: 'Copy'
},
{
text: 'Paste'
},
{
text: 'Cut'
},
{
name: 'Rename',
xtype: 'textfield',
emptyText: 'Enter text to rename'
}
]
})
},
{
text: 'Add Item',
id:'FSAddItemButton'
},
'->',
{
xtype: 'box',
id: 'fileSystemNodeNameLabel'
}
]
})
但是在控制器中我无法将点击事件附加到filesystemmenu
中的删除按钮,该按钮本身作为停靠项目存在于filesystemtree
。
基本上这一行在控制器中工作。
'filesystemtree filesystemmenu button[text="Delete"]': {
click:this.DeleteButtonClicked
}
我做错了什么?
答案 0 :(得分:0)
看看你的选择器。您要求它找到带有文本"删除"的按钮,但是您没有任何符合条件的组件,因为菜单的子项默认为Ext.menu.Item,所以你的选择器应该是:
'filesystemtree filesystemmenu menuitem[text="Delete"]'