我有一个 Backbone 集合模型(以子模型作为元素)和编辑它的视图。
我希望在最初创建模型时“关闭”同步,因此在用户单击按钮之前永远不会调用后端,然后我想“打开”同步并调用保存根模型上的方法,以便将其保存到数据库中。一旦它保存了一个模型,它的行为就应该像一个正常的模型。
目标是避免保存,直到用户确定他对输入的内容感到满意。
我有一个 Backbone 集合模型(以子模型作为元素)和编辑它的视图。
我希望在最初创建模型时“关闭”同步,因此在用户单击按钮之前永远不会调用后端,然后我想“打开”同步并调用保存根模型上的方法,以便将其保存到数据库中。一旦它保存了一个模型,它的行为就应该像一个正常的模型。
目标是避免保存,直到用户确定他对输入的内容感到满意。
Backbonesync
在转到Backbone.sync
.
Backbone.js 文档:同步函数可以作为 Backbone.sync 全局覆盖,或者在更细粒度的级别上,通过将同步函数添加到 Backbone 集合或单个模型。
因此,您可以这样做:
var MyModel = Backbone.Model.extend({
// New instances of this model will have a 'dud' sync function
sync: function () { return false; }
});
var MyView = Backbone.View.extend({
...
events : {
'click #my-button' : 'enableSync',
'click #my-save-button' : 'saveModel'
},
enableSync: function () {
// If this view's model is still pointing to our fake sync function,
// update it so that it references Backbone.sync going forward.
if (this.model.sync !== Backbone.sync) {
this.model.sync = Backbone.sync;
}
},
saveModel: function () {
// This won't actually do anything until we click '#my-button'
this.model.save();
}
...
});
var view = new MyView({ model: new MyModel() });