我正在尝试从JSON网址获取一个集合。骨干确实发送请求并且确实得到了响应但是之后集合中没有models
:
这是我的JavaScript:
stores.fetch();
响应中的JSON
[{"name":"Store 1"},{"name":"Store 2"},{"name":"Store 3"},{"name":"Store 4"}]
响应中的Content-Type HTTP标头为application/json
。
为什么不加载到集合中? JSON是否正确?
更多代码:
be.storeList.Item = Backbone.Model.extend({
defaults: {
id: null,
name: null,
description: null
},
initialize:function(attrs){
attrs.id = this.cid;
this.set(attrs);
}
});
be.storeList.Items = Backbone.Collection.extend({
model: be.storeList.Item,
url:'/admin/stores'
});
var stores = new be.storeList.Items();
stores.fetch();
console.log(stores.toJSON());
答案 0 :(得分:3)
fetch
是异步的。试试
stores.fetch({
success:function() {
console.log(stores.toJSON());
}
});
或
stores.on("sync", function() {
console.log(stores.toJSON());
});
stores.fetch();
或
stores.fetch().then(function() {
console.log(stores.toJSON());
});
答案 1 :(得分:1)
摆脱Item类中的initialize函数。你不需要它。
没有stores.models
这样的东西 - 如果你想看看里面有什么,你必须做console.log(stores.toJSON());