0

我一直在寻找解决方案,但找不到任何可行的方法。

注意:我正在Backbone.sync全局覆盖该方法。

当我实例化一个 Session 模型时,我向它传递了许多属性。正如您所料,这些应该是通过mySessionInstance.get('someAttribute'). this.fetch()会话模型在初始化方法中调用。我的自定义 Backbone.sync 方法需要访问一些会话属性,但是当它运行时,我收到一条错误消息,指出该实例不存在“get”方法。

就好像我在完全初始化之前试图访问我的会话实例的 .get 一样。关于如何解决它的任何想法?我希望模型有一个“就绪”或“初始化”事件,这样我就可以监听它并确保某些事情只有在模型真正完成初始化时才会发生。

谢谢,

路易斯

4

1 回答 1

0

模型fetch将触发两个事件:

  1. "change"如果有任何更改(即如果从服务器返回任何内容),将触发事件。毕竟,Afetch主要是由 AJAX 成功处理程序调用的。set
  2. 模型与服务器同步时"sync"会触发一个事件,同步包括获取。文档对此并不明确,但您可以轻松地在源代码中看到它,并且主事件列表会记录它。fetch

"change"事件通常可能更有用,并且应该用于指示模型已准备好使用。

如果您只需要一次性通知,则可以使用以下success回调fetch

model.fetch({
    success: function(model, response) {
        // ...
    }
});
于 2012-07-18T17:46:25.587 回答