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