作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我在客户端使用 extjs4 构建了这个 Web 应用程序,在服务器端使用了 Zend 框架操作 Controller 。我在服务器端有一组数组,它们可以作为 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'
}
}
});
如果我想通过对服务器的单个 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"...
}}
如何仅通过对服务器的一个 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'}
]
});
然后很容易发出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);
//...
}
});
关于javascript - 如何从一个获取请求创建多个 JSON 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7294135/
我是一名优秀的程序员,十分优秀!