所以我试图在extjs中配置一个读取'users.json'文件的ajax代理。我正在尝试将我的商店映射到users.json文件。这是我的商店:
Ext.define('AM.store.Users', {
extend: 'Ext.data.Store',
model: 'AM.model.User',
fields: ['name', 'email']
}
这是我的users.json文件:
{
success: true,
users: [
{name: 'Ed Hayes', email: 'aaa'},
{name: 'Tommy Gunz', email: 'tommy@sencha.com'},
{name: 'Clay Banks', email: 'clay@BoA.com'},
{name: 'Billy Joe', email: 'billyJgeemail.com'},
{name: 'James Bond', email: 'goldenGun@HQ.com'}
]
}
最后,我的模特:
Ext.define('AM.model.User', {
extend: 'Ext.data.Model',
fields: ['name', 'email'],
proxy: {
type: 'ajax',
url : 'data/users.json',
reader: {
type: 'json',
root: 'users'
}
}
});
// Uses the User Model's Proxy
Ext.create('Ext.data.Store', {
model: 'AM.model.User'
});
现在它似乎不起作用。有没有办法做到这一点? (这是我甚至应该做的事吗?)
答案 0 :(得分:1)
您希望在商店中设置代理,而不是在您的案例中设置模型。另外,我不确定你设置模型的方式是否是这样做的工作方式,这就是我如何设置模型和存储的问题:
Ext.define("AM.store.User", {
extend: "Ext.data.Model",
fields: [
{name:"name", type:"string"},
{name:"email", type:"string"}
]
});
// Uses the User Model's Proxy
var myStore = Ext.create('Ext.data.Store', {
model: 'AM.store.User',
proxy: {
type: 'ajax',
url : 'data/users.json',
reader: {
type: 'json',
root: 'users'
}
},
autoLoad: true
});
答案 1 :(得分:0)
使用model
中的store
属性,或使用fields
属性。不要同时使用它们。
您不需要json中的success
属性(您只需要使用某些extjs形式的操作)
当您已经宣布自己的商店类型时,为什么要使用模型创建默认商店?
您可以将proxy
放入store
或model
。 store
如果没有model
,则会proxy
继承{{1}}。
答案 2 :(得分:0)
您想在商店中设置代理 您可以通过此过程映射您的商店。 这里是代码。
Ext.create('Ext.data.Store', {
model : 'AM.store.User',
idProperty: 'id',
autoLoad : false,
autoSync : true,
remoteSort: true,
pageSize : 10,
proxy: {
type : 'ajax',
noCache : false,
limitParam: 'limit',
startParam: 'start',
url : 'data/users.json',
actionMethods: {
create : 'POST',
read : 'GET',
update : 'PUT',
destroy : 'DELETE'
},
reader: {
type : 'json',
root : 'data',
totalProperty : 'total',
successProperty : 'success',
messageProperty : 'message',
implicitIncludes: true
},
simpleSortMode : true
},
sorters: [{
property: 'id',
direction: 'asc'
}]
});