簡體   English   中英

骨干獲取返回奇怪數據的模型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM