骨干模型在initialize方法中获取属性

时间:2012-07-18 15:45:01

标签: javascript backbone.js

我已经找到了解决方法,但找不到任何有效的方法。

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

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

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

谢谢,

路易斯

1 个答案:

答案 0 :(得分:0)

模型fetch将触发两个事件:

    如果发生任何变化(例如,如果有任何东西从服务器返回),将触发
  1. "change"个事件。 fetch主要是set,毕竟由AJAX成功处理程序调用。
  2. "sync"事件将为triggered when the model is synced with the server,同步包括提取。 fetch文档在此方面不明确,但您可以在the sourcemaster events list中轻松看到它。
  3. "change"事件通常可能更有用,应该用于表明该模型已准备就绪。

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

    model.fetch({
        success: function(model, response) {
            // ...
        }
    });