Meh*_*nai 1 javascript json extjs extjs4
让我们假设我的客户端使用extjs4和服务器端的Zend框架操作控制器构建了这个Web应用程序.我在服务器端有数组的数组,它们可以作为JSON输出到客户端.当我想只创建一个商店时,通常的方式是这样工作:
Ext.define('MA.store.AdminResources', {
extend : 'Ext.data.Store',
fields : [ {
name : 'id'
}, {
name : 'name'
} ],
autoLoad : true,
proxy : {
type : 'ajax',
url : './account/adminresources',
reader : {
type : 'json'
//,root : 'users'
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果我想从一个http请求到服务器创建多个JSON存储怎么办?此服务器不会在每个商店收到远程代理请求,并且将为所有商店执行一个请求.以下是服务器返回的JSON示例:
{
"adminsettings"{"userid":3333,"primaryemail":"1@1.com","firstname":"","middlename":null}
,"countries":{"AD":"Andorra","AE":"UnitedArabEmirates","AF":"Afghanistan"...}
,"languages":{"aa":"Afar","ab":"Abkhazian","ace":"Achinese","ach":"Acoli"...
}}
Run Code Online (Sandbox Code Playgroud)
如何通过一个http请求创建管理员设置,国家/地区,语言的JSON商店?也许我需要定义一个代理和3个读者?!
正如您在文档中看到的那样,您可以定义没有代理的商店:
Ext.create('Ext.data.Store', {
model: 'User',
data : [
{firstName: 'Ed', lastName: 'Spencer'},
{firstName: 'Tommy', lastName: 'Maintz'},
{firstName: 'Aaron', lastName: 'Conran'},
{firstName: 'Jamie', lastName: 'Avins'}
]
});
Run Code Online (Sandbox Code Playgroud)
然后很容易制作ajax请求和onSuccess手动加载数据:
像这样的东西:
adminSettings = Ext.create('Ext.data.Store', {model: AdminSettings});
countries = Ext.create('Ext.data.Store', {model: Country});
Ext.ajax.request({
url: './account/adminresources',
success: function(response) {
var json = Ext.decode(response.responseText);
adminsettings.loadData(json.adminsettings);
countries.loadData(json.countries);
//...
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3701 次 |
最近记录: |