首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ext.menu.Menu关联商店

使用Ext.menu.Menu关联商店
EN

Stack Overflow用户
提问于 2012-11-08 16:40:23
回答 1查看 3.9K关注 0票数 5

我不熟悉Ext.menu.Menu。我想在从extjs.I中选择菜单项时关联存储区。我使用的是extjs 4.1.0。我甚至在网上搜索了一下sencha文档,但我找不到任何方法来实现这一点。

有什么方法可以做到这一点吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-11-08 17:37:29

我在一个项目中使用带有商店的菜单。下面是一个例子:

代码语言:javascript
复制
Ext.define("Ext.ux.menu.DynamicMenu", {
    extend: "Ext.menu.Menu",
    alias: 'widget.dynamicmenu',
    loaded: false,
    loadMsg: 'Loading...',
    store: undefined,
    icon: '',
    constructor: function (config) {
        var me = this;
        Ext.apply(me, config);

        me.callParent();
    },
    initComponent: function () {
        var me = this;
        me.callParent(arguments);
        me.on('show', me.onMenuLoad, me);
        listeners = {
            scope: me,
            load: me.onLoad,
            beforeload: me.onBeforeLoad
        };
        me.mon(me.store, listeners);
    },
    onMenuLoad: function () { var me = this; if (!me.store.loaded) me.store.load(); },
    onBeforeLoad: function (store) { this.updateMenuItems(false); },
    onLoad: function (store, records) { this.updateMenuItems(true, records); },
    updateMenuItems: function (loadedState, records) {
        var me = this;
        me.removeAll();
        if (loadedState) {
            me.setLoading(false, false);
            Ext.Array.each(records, function (record, index, array) {
                me.add({
                    text: record.get('DisplayName'),
                    data: record,
                    icon: me.icon
                });

            });
            me.store.loaded = true;
        }
        else {
            me.add({ width: 75, height: 40 });
            me.setLoading(me.loadMsg, false);
        }
        me.loaded = loadedState;
    }
});

我在如果IIRC的sencha论坛上找到了这个,但是再也找不到链接了。我对图标做了一些调整,等等。

在Ext.Array.each上(记录,....您需要定义自己的逻辑,这取决于您的模型。我的模型有一个DisplayName,我用它来显示为文本。我还在菜单项中创建的数据属性中存储我的记录。你在那里是完全自由的。

祝好运!

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13285370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档