【问题标题】:events for docked items in ext jsext js中停靠项目的事件
【发布时间】:2012-05-30 05:03:23
【问题描述】:

我是 ext js 的菜鸟,遇到了一个问题。
我创建了一个应用程序 这是我的控制器的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
            }

我做错了什么?

【问题讨论】:

  • @downvoter 我的问题被否决了吗?

标签: javascript extjs4 extjs-mvc


【解决方案1】:

看看你的选择器。您要求它找到一个带有“删除”文本的按钮,但是您没有任何符合条件的组件,因为菜单的子项默认为 Ext.menu.Item,因此您的选择器应该是:

'filesystemtree filesystemmenu menuitem[text="Delete"]'

【讨论】:

  • 是的,我明白了.. 但无论如何,非常感谢.. 我在想一个 splitButton 有一个按钮集合:)
猜你喜欢
  • 1970-01-01
  • 2023-03-04
  • 2016-03-15
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多