search

Home  >  Q&A  >  body text

javascript - 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'
    }]
}
怪我咯怪我咯2795 days ago609

reply all(2)I'll reply

  • ringa_lee

    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
            }
        });
    

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 17:46:42

    var posts = new Posts()
    
    posts.fetch()
    
    // 这样是否是你想要的?
    posts.models = posts.models.data
    
    console.assert(posts.models.length === 3)

    reply
    0
  • Cancelreply