Я использую Backbone.js в первый раз, и мне это нравится. В настоящее время я не могу разобраться в динамических атрибутах моделей. Например, скажем, у меня есть модель Person, и я хочу получить полное имя:
var Person = Backbone.Model.extend({
getFullName: function () {
return this.get('firstName') + ' ' + this.get('surname');
}
});
Тогда я мог бы сделать person.getFullName()
. Но я хотел бы сохранить его в соответствии с другими геттерами, более похожими на person.get('fullName')
. Я не вижу, как это сделать без беспорядочно переопределения Person # get. Или это мой единственный вариант?
Это то, что у меня есть до сих пор для переопределяющего варианта:
var Person = Backbone.Model.extend({
get: function (attr) {
switch (attr) {
case 'fullName':
return this.get('firstName') + ' ' + this.get('surname');
break;
case 'somethingElse':
return this.doSomethingClever();
break;
default:
return Backbone.Model.prototype.get.call(this, attr);
}
}
});
Я полагаю, это не страшно, но кажется, что должен быть лучший способ.