【发布时间】:2011-12-05 00:41:23
【问题描述】:
我一开始就与 ext js 4 堆栈。我试图在使用 store 启动应用程序时获取当前用户数据。但我没有从商店获得任何数据,即使 store.count 返回 0。
我发现了很多关于如何创建商店的描述,但没有找到如何访问其中的数据。
我设法使用 Ext ajax 请求获取数据,但我认为使用商店会更好,我无法避免它们..
我的模特:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
'id',
'username',
'email'
]
});
我的商店看起来像:
Ext.define('MyApp.store.User.CurrentUser', {
extend: 'Ext.data.Store',
requires: 'MyApp.model.User',
model: 'MyApp.model.User',
autoLoad: true,
proxy: {
type: 'ajax',
method: 'POST',
url: Routing.generate('admin_profile'),
reader: {
type: 'json',
root: 'user'
}
}
});
返回的json:
{
"success":true,
"user":[{
"id":1,
"username":"r00t",
"email":"root@root.root"
}]
}
以及应用程序:
Ext.application({
name: 'MyApp',
appFolder: '/bundles/myadmin/js/app',
models: ['MyApp.model.User'],
stores: ['MyApp.store.User.CurrentUser'],
//autoCreateViewport: true,
launch: function() {
var currentUser=Ext.create('MyApp.store.User.CurrentUser',{});
/*
Ext.Ajax.request({
url : Routing.generate('admin_profile'),
method: 'POST',
success: function(resp) {
var options = Ext.decode(resp.responseText).user;
Ext.each(options, function(op) {
var user = Ext.create('MyApp.model.User',{id: op.id,username:op.username,email:op.email});
setUser(user);
}
)}
});
*/
currentUser.load();
alert(currentUser.count());
}
});
【问题讨论】:
标签: javascript extjs extjs4