ページには次の表があります
<table>
<tbody data-bind="foreach: myfilters">
<tr>
<td data-bind="with: $root.iqReports">
<select data-bind="options: SelectedAttributes(), optionsText: function(SelectedAttributes){ return SelectedAttributes.NameHierarchy() + '.' + SelectedAttributes.LabelName() }, optionsCaption:'Select a Field...'"></select>
</td>
<td>
<select data-bind="options: $root.filterOperators, value:operator, optionsText: 'operatorName'">
</select>
</td>
<td>
<input data-bind="value: criteria1" />
</td>
<td>
<input data-bind="value: criteria2" />
</td>
<td>
<select data-bind="options: $root.joinOperators, value:joinOperator, optionsText: 'joinName'">
</select>
</td>
<td>
<a class="attributeLink" data-bind="click: $root.removeFilter">Remove</a>
</td>
</tr>
</tbody>
</table>
コレクション my フィルターは、必要な要素を正しく設定します。私が苦労しているのは、別の監視可能なコレクション (iqReports) を使用して選択要素を入力しようとしている最初のセルです。ページを実行すると、firebug はエラーを報告しませんが、要素は空です。
Firebug からの HTML:
<td data-bind="with: $root.iqReports"></td>
select要素を外に移動してもうまくいくので、この方法でバインドしようとすると何か問題があることに気付きました。
このタイプのバインディングをセットアップする方法について、誰かが洞察を提供できますか?
更新: これは、フィルターとレポート オブジェクトの作成に使用されるマークアップを示す部分的なフィドルですhttp://jsfiddle.net/rlcrews/e7z93/
-乾杯