如果我正确地完成了我的作业,我就会发现Backbone没有使用模型的保存方法保存模型时触发的内置保存事件(即使有是一个销毁事件。
我还了解到Backbone有一个很好的机制,可以使用Backbone.Events对象创建自定义事件。使用后者的作品,但我的印象是它不够精细,不能满足我的需求。
我的设置如下。我有一个由行(视图)构成的表(视图),每行都有一个模型的引用。保存模型后,我想更新/渲染行以反映更改。
如何创建在保存模型时触发的保存事件,以便更新引用该模型的表行(视图)?
换句话说,我希望能够做到以下几点:
this.model.bind('save', this.render);
答案 0 :(得分:18)
就在3天前,当成功保存模型时,向Backbone发出commit,触发sync
事件。但是,此提交尚未发布,因此如果要使用它,则需要从github帐户下载源代码。
View = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'onModelSaved');
this.model.bind('sync', onSuccessCallback);
},
onModelSaved: function(model, response, options) {
//perform your after save logic
}
});
答案 1 :(得分:10)
从Backbone.js 1.0.0开始,如果模型成功保存,则会触发sync
事件。
this.listenTo(this.model,'sync', this.render);
请注意,如果属性值发生变化,则会先针对相关属性触发change:attribute
,然后是change
事件,然后是sync
事件。
无论模型如何变化,都会触发sync
事件。它表示模型现在与服务器值同步。
此类事件仅在值有效时触发。即models.validate
不应返回从服务器获取的这些值的任何错误。