2015-12-15 122 views
0

我實現計算的或手動訂閱的點是跟蹤變化的可觀測量。不過,我碰到一個情況,我需要手動訂閱儘快它宣佈運行,而不是等待觀察的改變。調用在淘汰賽聲明手動訂閱?

有沒有辦法告訴訂閱一次立即運行?

例子:

vm.foo = ko.observable("bar"); 
vm.foo.subscribe(function() { 
    // code i want to run immediately, and on every observable change 
}); 

據我所知,認購將只運行,如果vm.foo的變化,但我有我的代碼需要針對它一旦應用程序啓動時運行。

+0

你能提供的示例代碼,所以它更容易理解你正在努力實現? – dotnetom

+0

已添加代碼示例。 –

回答

2

您可以使用功能valueHasMutatedobservable通知所有用戶,有可觀察的變化:

var vm = {}; 
vm.foo = ko.observable("bar"); 
vm.foo.subscribe(function() { 
    console.log('runs!'); 
}); 
ko.applyBindings(vm); 
vm.foo.valueHasMutated(); // you see 'runs!' printed in console output 

這裏是一個jsFiddle