実際のコードをスリム化しましたが、この作業を行うことができません。インラインノックアウトテンプレートでノックアウトjsとブートストラップを使用しています。以前はdiv内にたくさんの入力を入れていましたが、配置上の理由からテーブルに変更しました。プロパティ名が正しいことはわかっており、javascript コンソールには、不適切な変数やバインドの問題に関するエラーはまったく表示されません。TBODY タグの代わりに TR タグに foreach を入れています。毎回いくつのチェックボックスがあるかわからないため、それらを正確に行にしたくないためです。1 つの TR 要素と内部の TD セルの束だけです。今のところその 1 つの TR タグ。どうすればこれを機能させることができますか??
<div id="Counties" class="well well-large checkbox inline">
<table class="table table-condensed">
<tbody>
<tr data-bind="foreach: { data: counties
}">
<td><input type="checkbox" data-bind="attr: { value: $data.sid }" />$data.name
</td>
</tr>
</tbody>
</table>
</div>
ここに私のビューモデルがあります:
function searchVm() {
var self = this;
self.counties = ko.observableArray([]); //array of jurisItem
}
function jurisItem(name, sid) {
var self = this;
self.name = name;
self.sid = sid;
}
編集 :
また、knockoutjs のドキュメントに基づいてこれを試しましたが、機能しません。jqueryを使用して他の方法でこれを行うことができることは知っていますが、ノックアウトテンプレート構文を好むでしょう...
<table class="table table-condensed">
<tbody>
<tr>
<!-- ko foreach: $root.counties -->
<td>
<input type="checkbox" data-bind="attr: { value: $data.sid }" />$data.name
</td>
<!-- /ko -->
</tr>
</tbody>
</table>