簡體   English   中英

初始化方法中的主干模型獲取屬性

[英]backbone model get attribute within initialize method

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

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

當我實例化會話模型時,我將許多屬性傳遞給它。 如您所料,這些應該可以通過mySessionInstance.get('someAttribute')進行“獲取”。 會話模型在initialize方法內調用this.fetch() 我的自定義Backbone.sync方法需要訪問某些會話屬性,但是在運行時,我收到一條錯誤消息,指出該實例不存在“ get”方法。

好像我在完全初始化會話實例之前嘗試訪問.get一樣。 關於如何解決它的任何想法? 我希望模型有一個“就緒”或“初始化”事件,這樣我就可以偵聽並確保某些事情只有在模型真正完成初始化后才會發生。

謝謝,

路易斯

模型fetch將觸發兩個事件:

  1. 如果發生任何更改(例如,從服務器返回的任何內容),將觸發"change"事件。 畢竟, fetch主要是由AJAX成功處理程序調用的set
  2. 當模型與服務器同步時,觸發 "sync"事件,同步包括獲取。 fetch文檔對此並不明確,但是您可以在源代碼中輕松看到它,並且主事件列表會對此進行記錄。

通常, "change"事件可能更有用,並且應表明模型已准備就緒。

如果您只需要一次性通知,則可以使用fetchsuccess回調:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM