gpt4 book ai didi

binding - ExtJs 5 网格存储/ View 模型绑定(bind) : Cannot modify ext-empty-store

转载 作者:行者123 更新时间:2023-12-03 13:06:04 25 4
gpt4 key购买 nike

我正在为这个而烦恼......

我有一个包含一些网格、一个商店和一个 viewModel 的 View 。我需要不同网格中不同过滤版本的商店,所以我试图将每个过滤后的商店绑定(bind)到一个网格。现在我什至无法让商店首先加载到网格中......

这是我的代码:

商店:

Ext.define('My.store.Admin.Kinder', {
extend: 'Ext.data.Store',
model: 'My.model.Kind',
storeId: 'adminKinderStore',
alias: 'store.adminKinder',
proxy: {
type: 'ajax',
method: 'post',
url: '/getKinder',
reader: {
type: 'json',
rootProperty: 'kinder'
}
}
});

View 模型:

Ext.define('My.model.kindViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.kindViewModel',
requires: [
'My.model.Kind',
'My.store.Admin.Kinder'
],
view: 'kindView',
stores: {
warteliste: {
type: 'adminKinder'
}
}
});

查看:

Ext.define('My.view.Admin.kinder', {
extend: 'Ext.panel.Panel',
alias: 'widget.kindView',
id: 'kinder-panel',
requires: [
'My.view.Admin.kindController',
'My.model.kindViewModel'
],
controller: 'kind',
border: false,
maxWidth: 960,
session: My.session,
viewModel: {
type: 'kindViewModel'
},
initComponent: function() {
this.activeTab = 'warteliste-tab';
this.callParent();
},
items: [
{
xtype: 'grid',
id: 'warteliste-grid',
bind: {
store: '{warteliste}'
},
border: false,
margin: '0 0 20px 0',
selModel: {
allowDeselect: true
},
columns: [
// some grid columns
],
listeners: {
afterRender: function(grid) {
grid.store.load();
}
}
}]
});

我收到一条错误消息“无法修改 ext-empty-store”,这一定意味着当在 afterRender 监听器中调用 store.load() 时,商店尚未(尚未)绑定(bind)。奇怪的是,当我 console.log 网格时,商店就在那里。当我 console.log grid.store 时,返回一个空的存储区。

最佳答案

我在 afterRender 事件中遇到了同样的问题,并通过不从网格中获取商店来解决它

grid.store.load();

但是来自 ViewModel(ViewController 范围):

this.getViewModel().getStore('{warteliste}').load();

关于binding - ExtJs 5 网格存储/ View 模型绑定(bind) : Cannot modify ext-empty-store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26001134/

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