【问题标题】:Reference error- $index is not defined- knockout.js参考错误 - $index 未定义 - knockout.js
【发布时间】:2013-07-25 04:37:22
【问题描述】:

我在 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()}

我尝试用最新版本更改淘汰赛,但无法解决。 任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 请发布您的实际代码!您确定使用 $index 的绑定在 forach 绑定中吗?您是否有有效的 html 标记,您的 html 标记是否正确关闭?
  • 是的,我已经发布了实际代码。我检查了html标签,每个标签都正确关闭。

标签: knockout.js


【解决方案1】:

您是否尝试使用 $index 而不是 $index()?

也请关注this post

【讨论】:

  • 我做到了。我得到同样的错误Uncaught Error: Unable to parse bindings. Message: ReferenceError: $index is not defined; Bindings value: attr:{'id':'chk' + $index, checked: checked}
  • 也请关注this post
  • 好的。我确实尝试了链接中提到的所有解决方案。没有任何效果。我尝试使用该 div 进行模板绑定,它开始工作。仍然无法弄清楚为什么没有模板绑定它就不能工作。
【解决方案2】:

$index 是在 Knockout 中引入的,如 KnockoutJS documentation

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2021-07-15
    • 2015-09-29
    相关资源
    最近更新 更多