我已經得到了有關的基因敲除(http://knockoutjs.com/documentation/checked-binding.html)淘汰賽的CheckedValue
基本遏制結合的CheckedValue一個問題,看看這個小提琴http://jsfiddle.net/jo9dfykt/1/。 爲什麼如果我點擊按鈕「添加項目」選擇了正確的選擇,但如果我點擊第二個按鈕「添加項目二」這不成功? viewModel中addItem和addItem2方法有什麼區別?
然後,爲什麼with selectedValue什麼也沒有顯示?
我的目標是將單選按鈕列表綁定到observableArray並將整個對象保存到可觀察對象中。但我想設置單選按鈕的初始值,而不在observableArray上搜索它。
的Javascript
var viewModel = {
items: ko.observableArray([
{ itemName: 'Choice 1' },
{ itemName: 'Choice 2' }
]),
chosenItem: ko.observable(),
addItem: function() {
this.chosenItem(this.items()[0]);
},
addItem2: function() {
this.chosenItem({itemName: 'Choice 2'});
}
};
viewModel.chosenItem.subscribe(function(newValue){
console.log(newValue.itemName);
}),
ko.applyBindings(viewModel);
HTML
<!-- ko foreach: items -->
<input type="radio" data-bind="checkedValue: $data, checked: $root.chosenItem" />
<span data-bind="text: itemName"></span>
<!-- /ko -->
<input type="button" data-bind="click: addItem" value="Add Item"/>
<input type="button" data-bind="click: addItem2" value="Add Item Two"/>
<div>Selected Value: <span data-bind="text: chosenItem.itemName"></span></div>
感謝,我已經忘了參考的故事..哎呀!你用'add'方法的選擇對我來說是最好的選擇。 – Lic