我有存储,我想从数据库初始化,但我找不到标准的 init 方法Ext.data.Store
。我发现了几个有关该StoreManager
组件的示例,但我认为这不是我想要的。我的应用程序有一个 MVC 结构,我想保留它,我只想使用我定义的方法初始化商店的数据字段。有人可以解释怎么做吗?
问问题
2903 次
1 回答
1
我要么理解错了,要么你的问题是直截了当的。您使用这样的模型配置商店。就这样。您可以选择适合您需求的提供者(读取器/写入器)。
// Set up a model to use in our Store
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'firstName', type: 'string'},
{name: 'lastName', type: 'string'},
{name: 'age', type: 'int'},
{name: 'eyeColor', type: 'string'}
]
});
Ext.define('YourMVCNameSpace.data.UserStore', {
extend: 'Ext.data.Store',
constructor: function (config) {
config = Ext.Object.merge({}, config);
var me = this;
// do what you need with the given config object (even deletes) before passing it to the parent contructor
me.callParent([config]);
// use me forth on cause the config object is now fully applied
},
model: 'User',
proxy: {
type: 'ajax',
url: '/users.json',
reader: {
type: 'json',
root: 'users'
}
},
autoLoad: true
});
请注意,读者会期望得到这样的 Json 结果:
{"total": 55, "users":["...modeldata.."]}
并且指的是像这样的网址
http://localhost/YourAppDomain//users.json
将存储作为“用户”放置在控制器存储数组中,并通过调用getUserStore()
或直接从 Ext.StoreMgr 使用 Ext.StoreMgr.lookup('User') 在控制器中检索它;
请注意,按照惯例,控制器 (MVC) 将覆盖您在商店中设置的任何 storeId,并且只会使用名称。
于 2012-11-20T08:34:17.187 回答