Backbone collection fetch的问题

我希望通过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'
    }]
}
阅读 3.6k
2 个回答

自己在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
        }
    });
var posts = new Posts()

posts.fetch()

// 这样是否是你想要的?
posts.models = posts.models.data

console.assert(posts.models.length === 3)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题