1

ビューにバインドしているviewModelで定義された配列構造があります。ビューのコードは次のとおりです。

<div id="configurepopup">
        <div>
            <fieldset>
                <legend></legend>
                <div>
                    <label>
                        <b>Show Columns</b></label></div>
                <br />
                <ul data-bind="foreach: gridOptions.columns">
                    <li>
                        <label data-bind="attr:{ 'for': 'chk' + $index()}">
                        </label>
                        <input type="checkbox" data-bind="attr:{'id':'chk' + $index(), checked: checked}" /><span data-bind="text:header"></span></li>
                </ul>
            </fieldset>
        </div>
    </div>

ビューモデル:

function ProductStandardSearchVM() {
    var self = this;
    self.gridOptions = {
        columns: [{
            header: 'Catalog Number',
            dataMember: 'productName',
            checked: ko.observable(true)
        }, {
            header: 'Description',
            dataMember: 'shortDesc',
            checked: ko.observable(true)
        }, {
            header: 'List Price',
            dataMember: 'listprice',
            checked: ko.observable(true)
        }, {
            header: 'Quantity',
            dataMember: 'minOrdQty',
            checked: ko.observable(true)
        },
        {
            header: 'Old Material No',
            dataMember: 'oldMatNum',
            checked: ko.observable(true)
        }, {
            header: 'View',
            dataMember: 'view',
            checked: ko.observable(true)
        }]
    };
};
var test= new ProductStandardSearchVM();
ko.applyBindings(test, document.getElementById("configurepopup"));

同じための jsfiddle: http://jsfiddle.net/ynV35/3/

jsfiddle は完全に正常に動作します。私のプロジェクトでも同じことをしていますが、参照エラーが発生します:

不明なエラー: バインドを解析できません。メッセージ: ReferenceError: $index が定義されていません。バインディング値: attr:{'id':'chk' + $index()}

最新版でノックアウトを変更してみましたが、解決できませんでした。どんな助けでも大歓迎です。

前もって感謝します。

4

2 に答える 2

1

$index() の代わりに $index を使用しようとしましたか?

こちらの投稿もご覧ください

于 2013-07-25T05:37:59.750 に答える
0

KnockoutJS のドキュメントに記載されているように、$index が Knockout に導入されました。

于 2014-04-23T11:57:03.773 に答える