我希望通过fetch方法重置collection对象, 但是返回的json格式无法实现理想的数据填充。
var Posts = Backbone.Collection.extend({
url: "/api/classes/Post",
model: Post
})
var posts = new Posts
posts.fetch()
console.assert(posts.models.length === 3)
/* 失败了 因为返回数据不是一个数组而是对象,返回数据格式被固定化了,有什么办法可以从js代码方面去解决这个问题?*/
/* 返回数据的格式 */
{
data: [{
title: 't1',
content: 'c1'
}, {
title: 't2',
content: 'c2'
}, {
title: 't3',
content: 'c3'
}]
}
ringa_lee2017-04-10 17:46:42
自己在stackoverflow查到了相类似的问题
how-can-i-get-backbone-data-from-nested-json-key
可以通过增加一个parse方法来解决这个问题。
var Posts = Backbone.Collection.extend({
url: "/api/classes/Post",
model: Post,
parse: function(res){
return res.data
}
});
高洛峰2017-04-10 17:46:42
var posts = new Posts()
posts.fetch()
// 这样是否是你想要的?
posts.models = posts.models.data
console.assert(posts.models.length === 3)