HTMLでは、テキストをクリックするか、ラジオボタンまたはチェックボックスのテキストにカーソルを合わせると、次のようにHTMLで選択できます。
<label>
<input type="checkbox" />option 1
</label>
また
<input id="checkboxid" type="checkbox" />
<label for="checkboxid">option 1</label>
私はノックアウトで同じ動作をしようとしていますが、同じことについて多くの助けを見つけることができません:
<label data-bind="text: $data.optiontext">
<input type="checkbox" data-bind="value: $data.optionvalue, checked: $parent.selectedOptions" />
</label>
ビュー(またはhtml)は以下のとおりです(以下のコードには上記のhtmlが含まれていないため、試してみる場合は、上記の変更を加えて確認する必要があります)。
<div data-bind="foreach: options">
<input type="checkbox" data-bind="value: $data.optionvalue, checked: $parent.selectedOptions" />
<label data-bind="text: $data.optiontext"></label>
</div>
<hr />
<div data-bind="text: selectedOptionsList"></div>
ビューモデルは次のとおりです。
var viewModel = {
options: [
{ optiontext: 'Simple', optionvalue: "1" },
{ optiontext: 'Advanced', optionvalue: "2" }
],
selectedOptions: ko.observableArray(["2"])
};
viewModel.selectedOptionsList = ko.computed(function() {
return this.selectedOptions().join(",");
}, viewModel);
ko.applyBindings(viewModel);
jsFiddleリンクは次のとおりです:http://jsfiddle.net/rupesh_kokal/AFzbY/