繁体   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