我是ExtJS的初学者,正在研究sencha的教程,而且只是不想工作(应用教程)。
我有一个简单的网格存储,当商店使用AJAX代理读取json文件时,数据没有显示,并且根据firebug中的net选项卡没有加载,因为它是空的。所以永远不会抛出任何错误。但是,如果我为我的json文件添加了一个坏URL,那么它会抛出一个无法找到它的错误。
我的商店看起来像这样:
Ext.define('AM.store.Users', {
extend: 'Ext.data.Store',
model: 'AM.model.User',
autoLoad: true,
proxy: {
type: 'ajax',
url: 'data/users.json',
reader: {
type: 'json',
root: 'users',
successProperty: 'success'
}
}
});
我的json文件是这样的:
{
"success": true,
"users": [
{"name": "Ed", "email": "ed@sencha.com"},
{"name": "Tommy", "email": "tommy@sencha.com"}
]
}
模型:
Ext.define('AM.model.User', {
extend: 'Ext.data.Model',
fields: ['name', 'email']
});
这些与本教程的可下载源文件完全相同,但也不起作用。如果数据是在商店中内联定义的,那么一切都还可以。请帮忙,完全阻止在这里。
谢谢!
答案 0 :(得分:1)
你需要在像埃里克所说的服务器设置中进行ajax调用。要回答有关加载外部数据的问题,你不能这样做,因为它首先不起作用的原因是出于安全原因,如果可以绕过它就没有意义。我认为你可以从外部文件加载数据的唯一方法是将JSON数据保存为外部.js文件中的对象,只需使用商店的data属性将数据设置为外部文件中的该对象