我从服务器取回的数据如下所示:
["admin", "user", "developer", "super"]
我正在尝试将其映射到此模型中:
Ext.define('RoleModel', {
extend: 'Ext.data.Model',
//fields: [{}]
});
我的商店是这样的:
Ext.create('Ext.data.Store', {
model: 'RoleModel',
proxy: {
type: 'ajax',
url : '/roles',
reader: {
type: 'json'
}
},
autoLoad: true
});
如何将从服务器获取的单个数组映射到我的 RoleModel
?
最佳答案
您已经知道了,在您的 JSON 可以被解析为您的数据模型之前,它需要采用以下形式:
[
{ "role": "admin" },
{ "role": "user" },
{ "role": "developer" },
{ "role": "super" }
]
...但是如果您使用的是 ExtJS 5.x,则无需手动进行 Ajax 调用 - 您可以应用 < em>transform 在代理的阅读器上,例如:
Ext.create('Ext.data.Store', {
model: 'RoleModel',
proxy: {
type: 'ajax',
url : '/roles',
reader: {
type: 'json',
transform: function(data) {
return data.map(function(x){
return { role: x };
});
}
}
}
});
关于javascript - 如何在 extjs 中为 json 数组创建模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24810864/