我無法獲得一個簡單的dependentObservable鏈在knockout.js中工作。這裏是我的代碼:無法獲取knockout.js依賴可觀察鏈接工作
var viewModel = {
didWork: ko.observable(''),
stillWorking: ko.observable(''),
didYouQuit: ko.observable('')
};
viewModel.stillWorkingVisible = ko.dependentObservable(function() {
return this.didWork() == 'Yes';
}, viewModel);
viewModel.didYouQuitVisible = ko.dependentObservable(function() {
alert('ok');
return this.stillWorkingVisible() == 'Yes' && this.stillWorking() == 'No';
}, viewModel);
ko.applyBindings(viewModel);
<ul>
<li>Did you do any work?<br />
<input type="radio" name="didWork" value="No" data-bind="checked: didWork" /> No
<input type="radio" name="didWork" value="Yes" data-bind="checked: didWork" /> Yes
</li>
<li data-bind="visible: stillWorkingVisible">Are you still working?<br />
<input type="radio" name="stillWorking" value="No" data-bind="checked: stillWorking" /> No
<input type="radio" name="stillWorking" value="Yes" data-bind="checked: stillWorking" /> Yes
</li>
<li data-bind="visible: didYouQuitVisible">Did you quit?<br />
<input type="radio" name="didYouQuit" value="No" data-bind="checked: didYouQuit" /> No
<input type="radio" name="didYouQuit" value="Yes" data-bind="checked: didYouQuit" /> Yes
</li>
</ul>
每當「你還在」無線電被選中,didYouQuitVisible dependentObservable似乎從來沒有更新或火災。我在那裏有一個alert(),並且每當「你還在工作」的收音機被選中/取消選中時,警報都不會彈出。但是,當第一個無線電組被選中/取消選中時,警報會顯示。第一個dependentObservable(stillWorkingVisible)工作得很好。想法?
非常有趣。不知道爲什麼這不工作..我在這裏做了一個JS小提琴的代碼:http://jsfiddle.net/xYqKP/ – jmacinnes