gpt4 book ai didi

javascript - 使用 json 的 ExtJS 存储初始化失败

转载 作者:行者123 更新时间:2023-11-30 18:15:05 27 4
gpt4 key购买 nike

我有一家这样的商店:

Ext.define('app.store.System', {
extend : 'Ext.data.Store',
model : 'app.model.System',
autoLoad: true,
autoSync: true,

proxy: {
type: 'rest',
format: 'json',
url: '/application/appinfo',
method : "GET",
reader: {
type: 'json',
root: 'System'
},
writer: {
root: 'System',
allowSingle: false
}
}
});

并且我有一个服务端点来处理与/application 匹配的请求:

@GET
@Path("/{sysinfo}")
public List<SystemInfo> getSystemInfo() {
if(sysinfo == null){
sysinfo = new SystemInfo();

...initialize
}

List<SystemInfo> resultList = new ArrayList<SystemInfo>();
resultList.add(sysinfo);

return resultList;
}

它似乎有效...当我尝试访问 localhost:port/application/sysinfo.json 时,我得到了这个:

{ [{"address":"...","feeds":["feed1","feed2"] } ] }

这似乎是正确的,但是当我尝试在 View 的初始化方法中从存储中读取数据时:

var store = Ext.StoreManager.lookup('System');
var data = [];

store.each(function(record) {
data.push(record.getData());
console.log("record data: ");
console.log(record.getData());
});

console.log(data[0]);

它说它是未定义的,就好像商店是空的一样。我用调试器尝试了它,我发现 getSystemInfo() 在 View 的初始化组件之后被调用,但不幸的是我不知道为什么会这样或如何解决它。有什么想法吗?

感谢您的宝贵时间。

最佳答案

您是否尝试过先加载您的商店?

var store = Ext.StoreManager.lookup('System');
var data = [];
store.load({
callback: function(storeVar, records, successful) {
Ext.each(records, function(record) {
data.push(record.getData());
console.log("record data: ");
console.log(record.getData());
});
}
console.log(data[0]);
});

鲍里斯说的是真的,您需要在返回的 JSON 中定义您的根属性。

如果您使用的是 chrome 或 firefox,您还可以检查进行了哪个网络调用,以及它返回了什么(JSON 数据...)。

关于javascript - 使用 json 的 ExtJS 存储初始化失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495994/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com