[英]backbone fetching a model returning strange data
我正在我的骨干應用程序中從服務器中獲取模型數據,
var projectModel = new App.Models.Project({ id: 1001 });
projectModel.fetch();
提取工作正常,我從服務器獲取了數據,但是數據的格式不是我期望的,一個項目是一個包含其他模型和集合的模型,但是從服務器返回到模型的內容是這樣的,
{ project_name: "A Test Project" project_managers: Array[5], workers: Array[10] }
這意味着每次我為項目進行提取時,都必須設置每個需要像這樣的模型或集合的屬性,
projectModel.set('workers', new App.Collections.Users(projectModel.get('workers')));
在我的模型中,我確實有一個初始化函數,在該函數中我做了所有這些設置,但是在獲取時似乎被忽略了。
當然,有一種更好的方式來設置我的屬性,而不是必須逐個檢查它們?
如果像這樣覆蓋模型中的parse方法,
parse: function(response, options) {
this.set('workers', new App.Collections.Users(response.workers));
}
確實確實會將工作人員返回為項目模型中的集合,但是它忽略了諸如name之類的單個屬性,因此我希望將其返回,
{
name : Test Project,
workers : s //this is how console.log outputs it
},
但是我回來了
{
workers : s //this is how console.log outputs it
}
為什么是這樣?
您可以重寫模型解析方法,以實現此行為,每次獲取模型時都會自動執行
http://backbonejs.org/#Model-parse
該函數將傳遞給原始響應對象,並應返回要在模型上設置的屬性哈希。
所以在你的模型中
parse: function(response, options) {
response.workers = new App.Collections.Users(response.workers));
return response;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.