要么不将它们发送给客户端,以便您的 Backbone 模型永远不会知道它们,要么toJSON
在您的模型中覆盖以排除它们。
默认toJSON
实现非常简单:
toJSON: function() {
return _.clone(this.attributes);
}
所以你可以用这个替换它:
toJSON: function() {
var attrs = _(this.attributes).clone();
delete attrs.created_at;
delete attrs.updated_at;
return attrs;
}
Backbone.Model.prototype
如果这对您有意义,您甚至可以将其直接修补。
更改的缺点toJSON
是toJSON
往往在 Backbone 中执行双重任务:
toJSON
用于为服务器序列化模型和集合。
toJSON
用于序列化视图的模型和集合。
如果您仍想在视图中使用updated_at
and created_at
,那么我建议您添加另一种方法,例如serialize_for_view
,它可以满足标准的toJSON
作用:
serialize_for_view: function() {
return _(this.attributes).clone();
}
然后使用诸如var html = this.template({m: this.model.serialize_for_view()})
构建视图的 HTML 之类的东西。如果你想在任何地方使用它,serialize_for_view
你也可以猴子补丁。Backbone.Model.prototype