ViewModel 中的 Extjs 链式存储到 GlobalStore
Extjs Chained store to GlobalStore in ViewModel
我想使用链接到全局商店的商店,
但在启动后我给出了 js 警告:
Ext.data.Store created with no model
我看不到任何数据。
这是我的代码:
全局用户存储
Ext.define('App.store.UserStore',{
extend : 'App.store.AjaxReadyStore',
requires : ['App.model.UserModel'],
model : 'App.model.UserModel',
autoLoad : false,
id : 'UserStore',
alias : 'store.UserStore',
constructor : function() {
this.callParent(arguments);
this.proxy.api= {
create : 'api/v1/users',
read : 'api/v1/users',
update : 'api/v1/users',
destroy : 'api/v1/users'
};
this.readAndLoad();
}
});
ViewModel
Ext.define('App.view.tasktemplate.TaskTemplateModel', {
extend : 'Ext.app.ViewModel',
alias : 'viewmodel.tasktemplate',
stores : {
owner: {
source : 'UserStore'
}
}
});
查看
Ext.define('App.view.tasktemplate.TaskTemplateOwnerList',{
extend : 'App.view.pool.grid.GridWithAction',
xtype : 'tasktemplateownerlist',
store: {
bind : '{owner}'
},
});
将您的视图代码更改为此 -
Ext.define('App.view.tasktemplate.TaskTemplateOwnerList',{
extend : 'App.view.pool.grid.GridWithAction',
xtype : 'tasktemplateownerlist',
bind: {
store : '{owner}'
}
});
商店绑定:
bind: {
store : '{owner}'
}
当你这样做的时候真的很有趣
store: {
bind : '{owner}'
}
在您的视图中 - StoreManager 使用商店配置的值进行查找,通常需要一个字符串或字符串数组(商店名称),但它发现它不是一个字符串而是一个对象,因此它创建了一个实例'Ext.data.Store' 将 {bind:'{owner}'} 作为配置传递 -> 所以您实际上得到了一个没有关联模型的 Store class 实例。
商店:
我想使用链接到全局商店的商店, 但在启动后我给出了 js 警告:
Ext.data.Store created with no model
我看不到任何数据。
这是我的代码:
全局用户存储
Ext.define('App.store.UserStore',{
extend : 'App.store.AjaxReadyStore',
requires : ['App.model.UserModel'],
model : 'App.model.UserModel',
autoLoad : false,
id : 'UserStore',
alias : 'store.UserStore',
constructor : function() {
this.callParent(arguments);
this.proxy.api= {
create : 'api/v1/users',
read : 'api/v1/users',
update : 'api/v1/users',
destroy : 'api/v1/users'
};
this.readAndLoad();
}
});
ViewModel
Ext.define('App.view.tasktemplate.TaskTemplateModel', {
extend : 'Ext.app.ViewModel',
alias : 'viewmodel.tasktemplate',
stores : {
owner: {
source : 'UserStore'
}
}
});
查看
Ext.define('App.view.tasktemplate.TaskTemplateOwnerList',{
extend : 'App.view.pool.grid.GridWithAction',
xtype : 'tasktemplateownerlist',
store: {
bind : '{owner}'
},
});
将您的视图代码更改为此 -
Ext.define('App.view.tasktemplate.TaskTemplateOwnerList',{
extend : 'App.view.pool.grid.GridWithAction',
xtype : 'tasktemplateownerlist',
bind: {
store : '{owner}'
}
});
商店绑定:
bind: {
store : '{owner}'
}
当你这样做的时候真的很有趣
store: {
bind : '{owner}'
}
在您的视图中 - StoreManager 使用商店配置的值进行查找,通常需要一个字符串或字符串数组(商店名称),但它发现它不是一个字符串而是一个对象,因此它创建了一个实例'Ext.data.Store' 将 {bind:'{owner}'} 作为配置传递 -> 所以您实际上得到了一个没有关联模型的 Store class 实例。 商店: