gpt4 book ai didi

extjs - 将商店与 Ext.menu.Menu 关联

转载 作者:行者123 更新时间:2023-12-04 17:02:15 30 4
gpt4 key购买 nike

我是 extjs 的新手。我想在从 Ext.menu.Menu 选择菜单项时关联一个商店。我正在使用 extjs 4.1.0。我在网上搜索甚至通过 sencha doc 但我找不到任何方法来实现这一目标。

有什么方法可以实现吗?

提前致谢。

最佳答案

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

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(records, ....
您需要定义自己的逻辑,这取决于您的模型。我的模型有一个 DisplayName,我用它来显示为文本。我还在菜单项中创建的数据属性中存储了我的记录。你在那里完全自由。

祝你好运!

关于extjs - 将商店与 Ext.menu.Menu 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13285370/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com