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