【发布时间】:2011-11-23 22:13:21
【问题描述】:
我正在构建一个小型 Backbone.js 应用程序,并向其中一个模型添加了一些自定义 getter(例如,名称 getter 返回连接的名字和姓氏):
PersonModel = Backbone.Model.extend({
get: function (attr) {
if (typeof this[attr] == 'function') {
return this[attr]();
}
return Backbone.Model.prototype.get.call(this, attr);
},
name: function() {
return firstName + " " + lastName;
}
})
我现在可以使用person.get("name") 来检索名称,很好。但是,当我在模型上调用 toJSON 时,这些值不包括在内(我认为这是有道理的)。问题是我用它来呈现我的观点:
this.template({people: this.collection.toJSON()});
在 Backbone.js 中执行此操作的最佳方法是什么?使用覆盖的 getter 手动创建 JSON?
谢谢!
【问题讨论】:
-
为什么不让“名字”成为一个真正的属性呢?
-
因为我想要不想要静态属性。如果我在此示例中更改
firstNamename应该返回更新后的名称,我不想单独更改它们。这有意义吗?
标签: json templates backbone.js render getter