簡體   English   中英

backbone.js 解析 1 個元素(Id)

[英]backbone.js parse 1 element (the Id)

對於主干中 model 上的 id,它只是id並且全部小寫。 如果我在服務器上的 Id 被稱為UserId怎么辦。 在主干的解析方法中,如何將UserId更改為id並為所有其他屬性使用相同的名稱?

例如。

window.User = Backbone.Model.extend({
    defaults:
       {
           UserId: 0, // <--can i just tell backbone that this is my id?
           Name: '',
           Age: 0
       }
    parse: function(response){
           var model = response;
           model.id = response.UserId;
           return model;
       }
});

有一個更好的方法嗎?

如何告訴主干 model 我的 id 是UserId類型。

您必須使用model中的 idAttribute 說 Backbone 什么屬性是您的 id:

window.User = Backbone.Model.extend({
    idAttribute: "UserId",
    ...
})

一切正常:)。 Backbone 將為您創建一個id屬性,並且此 model 的 collections 將通過您的UserId get()

這樣做:

parse: function(response) {
  var attrs = {};
  attrs.id = response.UserId;
  return attrs;
}

Parse 有責任返回屬性 hash,而不是 model。 因此,您只需要將響應轉換為屬性 hash 與 model 一樣。

要設置 id,我會按照 mauromartini 的說法。 要更改任何其他屬性,您不需要創建任何私有變量,來自服務器的響應只是一個 object 所以操作它並返回它。

window.User = Backbone.Model.extend({
  defaults: { UserId: 0 },
  parse: function(response){
    response.id = response.UserId;
    return response;
  }
});

如果您想保持 model 清潔,您還可以在返回 object 之前添加以下內容:

delete response.UserId;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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