Backbone.js:Collection.Get(id) - >忽略大小写

时间:2012-07-26 07:48:13

标签: backbone.js

我有以下型号和系列:

var UserModel = Backbone.Model.extend({
    url: 'api/user',
    idAttribute:'username',
    defaults: {
        username:'',
        password:'',
        email:'',
        tags:''
    }
});
var UserCollection= Backbone.Collection.extend({
    url: 'api/user',
    model: UserModel
});

当我使用以下方法从集合中检索用户时:

var myUser  =   collection.get(username);

用户名必须是正确的情况,否则我只是得到null。

有没有办法告诉骨干网忽略某些类似操作的情况?

1 个答案:

答案 0 :(得分:1)

当然,您只需要更改相关代码即可。它位于240-242的{​​{1}}行(对于文档版本0.9.2):

backbone.js

将其更改为:

get: function(attr) {
  return this.attributes[attr];
},

收集更改

get: function(attr) {
   // will skip if null or undefined -- http://stackoverflow.com/questions/5113374/javascript-check-if-variable-exists-which-method-is-better
   if (this.attributes[attr] != null) {
       return this.attributes[attr];
   }
   // and then try to return for capitalized version -- http://stackoverflow.com/questions/1026069/capitalize-the-first-letter-of-string-in-javascript
   else {           
       return this.attributes[attr.charAt(0).toUpperCase() + attr.slice(1)];
   }
},

这样的事可能有用:

get: function(id) {
  if (id == null) return void 0;
  return this._byId[id.id != null ? id.id : id];
},