【发布时间】: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