当我创建一个新的backbone.js模型时,“defaults”中的属性不会被忽略,它们将成为我模型的初始值。
当我在模型上称之为“清除”时,为什么忽略它们
背后有什么理由吗?
为什么我需要一个状态,当我有“默认值”时,我的模型的所有属性都是0或“”(空格)?
有人可以给我一个真实世界的例子吗?
例如,在我的一个模型中,有一个名为“status”的属性。初始值为“x”,但用户可将其更改为“b”或“u”。 “”(空格)无效值。因此,在模型中,我有
defaults: {
"status": "x"
}
在详细信息组件中,用户可以编辑模型的值,他有一个名为“erase”的按钮。当他这样做时,模型得到初始状态。在这种情况下,我永远不需要一个函数来将所有属性设置为零或空格。
如果模型具有“默认值”,则backbone.js作者可以很容易地检查“clear”方法,如果是,则删除所有值,然后获取默认值。
提前致谢了 沃尔夫冈
答案 0 :(得分:5)
有类似的需求。因为框架的作者不会自己使用它们,所以他们无法预见所有现实世界的用例。最好直接问https://github.com/documentcloud/backbone
无论如何,这是javascript
Backbone.Model.prototype.resetToDefaults = function() {
this.clear();
this.set(this.defaults);
};
答案 1 :(得分:2)
如果您不喜欢覆盖它!
var Model = Backbone.Model.extend({
clear: function(options) {
Backbone.Model.prototype.clear.apply(this, arguments); // or something like this
return this.set(_.clone(this.defaults));
}
});
现在您可以使用自定义模型作为所有模型的基础
var MyModel = Model.extend({...});
如果这样做很快就会让你烦恼,你可以将它发布到backbone.js'git issues。
希望这有帮助!