2012-05-23 187 views
1

爲什麼this code在3秒後沒有改變?我究竟做錯了什麼?爲什麼knockoutjs不能正確綁定?

<div data-bind="visible: isBusy()"> 
is busy 
</div> 

<div data-bind="visible: !isBusy()"> 
is not busy 
</div> 



var viewModel; 
function AppViewModel() { 
    var self = this; 
    self.isBusy = ko.observable(true); 
} 

function isNotBusyAnymore() { 
    viewModel.isBusy = ko.observable(true); 
} 

viewModel = new AppViewModel(); 
ko.applyBindings(viewModel); 
setTimeout(isNotBusyAnymore, 3000); 

回答

3

因爲你不斷建立新的觀察到....,也是你的函數總是將其設置爲「真」

function isNotBusyAnymore() { 
    viewModel.isBusy(false); 
} 
+1

哇!其中一個讓我瘋狂的陷阱!我想我已經在電腦前太久了!謝謝! –

+1

是的,我知道那些日子.....我傾向於使用coffeescript與淘汰賽這些天,我今天有一個類似的DOH時刻與一些淘汰賽綁定的東西! –