2013-06-23 61 views
0

[編輯] 回答 [/編輯]BackboneJS和JSON-API的WordPress(訪問用於模型子對象)

我剛開始與骨幹,並遇到了絆腳石,我不能弄清楚。

我有以下的集合,它發送我的網站上,以JSON-API的請求,按類別提取的帖子:

Posts.Collections.CategoryPosts = Backbone.Collection.extend({ 

initialize: function(options) { 
    this.id = options.id; 

    var intRegex = /^\d+$/; 

    if(intRegex.test(this.id)) { 
     this.url_querystring = '?id=' + this.id; 
    } 
    else { 
     this.url_querystring = '?slug=' + this.id; 
    } 
}, 

url: function() { 
    return '/api/core/get_category_posts/' + this.url_querystring; 
}, 

model: Posts.Models.CategoryPost 
}); 

現在,這部作品的魅力;但問題是;這回的JSON居然是:

{ 
    "status": "ok", 
    "count": 10, 
    "count_total": 79, 
    "pages": 7, 
    "category": { ... } 
    "posts": [ 
     { ... }, 
     { ... }, 
    ... 
    ] 
} 

所以,當在收集使用fetch()我的代碼試圖分配回到個別Post模型;它只創建一個。

如何告知Backbone應該使用JSON返回中的「post」子對象創建模型?在那裏真的似乎沒有太多的東西,或者我不確切知道要搜索什麼?

任何幫助都會很大 - 最好是朝着正確的方向推動,而不是給出答案。

回答

2

答案是確定一個解析函數的集合:

Posts.Collections.CategoryPosts = Backbone.Collection.extend({ 

    initialize: function(options) { 
     this.id = options.id; 

     var intRegex = /^\d+$/; 

     if(intRegex.test(this.id)) { 
      this.url_querystring = '?id=' + this.id; 
     } 
     else { 
      this.url_querystring = '?slug=' + this.id; 
     } 
    }, 

    // Make sure you parse the correct JSON object! 
    parse: function(response) { 
     return response.posts; 
    }, 

    url: function() { 
     return '/api/core/get_category_posts/' + this.url_querystring; 
    }, 

    model: Posts.Models.CategoryPost 
});