2

データをループしてランタイム html を作成しようとしていますが、コレクションからインデックスを取得できません。ノックアウト 2.1.0.js を使用しています。私は何か間違ったことをしていますか?

<ul data-bind="foreach: gridOptions.columns">    
    <li>     
        <label data-role="none" data-bind="attr:{for: 'chk' + $parentContext.$index }">     
        </label>
        <input type="checkbox" data-bind="attr:{ id: 'chk' + $parentContext.$index }, checked: checked}" /><span data-bind="text:header"></span>
    </li>    
</ul>

ビューモデルは gridOptions です:

{
    columns: [{
        header: 'Catalog Number',
        dataMember: 'productName',
        checked: ko.observable(true)
    }, {
        header: 'Description',
        dataMember: 'shortDesc',
        checked: ko.observable(true)
    }]
},

私はこれで立ち往生しているので、これについて私を助けてください。$indexプレーンまたはすべての可能なものを試しまし$index()たが、これを機能させることができませんでした。

4

2 に答える 2

2

data-bind="attr: { 'for': 'chk' + $index() }"
削除}:
data-bind="attr: { 'id': 'chk' + $index() }, checked: checked"

作業例: http://jsfiddle.net/myS95/3/

于 2013-04-29T11:45:42.623 に答える
2
It works if you have nested arrays

http://jsfiddle.net/AXvxR/

于 2013-04-29T11:46:30.560 に答える