當我的用戶登錄時,我從服務器加載一堆數據。這需要花費很多時間,因爲似乎每一次對observableArray()的添加都會更新依賴的觀察值。我想推遲評估所有依賴關係,直到所有數據加載完畢。我已經看到如何使用deferEvaluation: true
來影響特定ko.computed()
變量的行爲,但我希望將observable隔離直到我知道它已完成更新,然後使整個模型無效以重新繪製視圖。當使用knockoutjs加載數據時推遲依賴關係
我創建了一個jsfiddle來說明問題。請注意,在我的真實代碼中,我使用映射插件來加載對象,但在此我只模擬了每個狀態更改都會調用的.subscribe
函數的所有依賴關係。我想阻止它直到最後才被調用。
這個解決方案的一個問題是它似乎不適用於'ko.mapping'插件。在通話完成之前,我看到更新從'ko.mapping.fromJS'調用中傳播到顯示器。 – 2012-02-02 22:54:20