もちろん、関連するコードを変更するだけです。これは次の行240-242
にありbackbone.js
ます(文書化された0.9.2バージョンの場合):
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];
},
このようなものにうまくいくかもしれません:
get: function(id) {
if (id == null) return void 0;
var firstCase = this._byId[id.id != null ? id.id : id];
if (firstCase != null) {
return firstCase;
}
else {
return this._byId[capitalize(id.id) != null ? capitalize(id.id) : capitalize(id)];
}
},