0
我想找到避免在啓動頁面時觸發可觀察訂閱的最佳做法。如何避免訂閱觸發數據綁定下拉菜單的初始化?
問題:
當你有像下面描述的來說,警報會在啓動時顯示,這是不必要的:
foo.someProperty = ko.observable(null);
foo.someProperty.subscribe(function() { alert(foo.someProperty()); });
難以忽視的解決方案:
到現在爲止,我一直在使用以下解決方案:
foo.someProperty.subscribe(function() {
if (TriggersEnabled()) { alert(foo.someProperty()) };
});
TriggersEnabled
檢查避免回調執行,但此解決方案要求創建TriggersEnabled
屬性。此外,它必須在啓動前設置爲false,在完成頁面加載後設置爲true。
問題
我能避免這種情況?有沒有其他方法可以達到同樣的效果?
@TPaim,可以在創建(或更新)一個的jsfiddle這說明您的問題?如果observable在創建時被設置(如@Joroen所示),那麼'subscribe'不會提前觸發。 – 2014-09-22 23:33:28
嘿@Jeroen和@Matt!當屬性綁定到select時會發生問題。檢查這個小提琴:http://jsfiddle.net/a0v9y30r/ – TPaim 2014-09-23 03:11:01