3

为模型获取数据时“成功”回调的目的与绑定到“更改”事件的方法的目的是什么?

“成功”回调

this.model.fetch({
  url: '...'.

  success: function(response) {
    ...
  }
});

与模型“更改”绑定

this.model.bind("change", this.attributesChanged);
4

3 回答 3

7

通常,当我在模型本身之外调用 fetch 并希望在模型中触发额外的成功函数回调时,我会使用 fetch-success 回调。

另外请注意,请注意 CRUD 事件,因为即使无法成功存储到服务器,“更改”事件仍可能会触发,请记住“更改”是在模型更改时触发的。从 0.9.0 版开始,添加了“同步”事件来解决此问题。只要模型的状态与服务器成功同步,就会触发此事件。

于 2012-06-06T18:29:03.687 回答
2

使用“成功”或“错误”的主要原因是基于响应执行功能,因为“更改”只会在模型成功更改时触发。如果您的提取由于某种原因失败,“更改”将不会触发。回调允许您进行更精细的控制。也就是说,这可以归结为个人偏好,即您何时想要响应响应。我的想法是,如果我只对响应成功的 CRUD 操作感兴趣,那么监听“更改”是完全合适的,因为我会忽略错误。

于 2012-06-06T18:16:14.460 回答
0

如果模型被任何方法更新,'change' 事件将触发,例如用户输入用于更改模型属性的表单,或从服务器获取数据。

fetch 上的成功回调显然只有在从服务器获取之后才会调用。

因此,如果您只想响应由获取引起的模型更改,而不是“双向”更改,请使用成功处理程序而不是更改事件。

于 2013-01-04T11:31:29.287 回答