您好我希望能够根据数组的值绑定表格中项目的可见性。
我有
<input type="text" value="2" data-bind="visible: this.arrayVal[2].name == 'RST'/>
依此类推,我让Jquery生成数据绑定值。这是对的吗?
另外,我如何动态初始化值。 N行表的示例,我想将值绑定到10行的可观察数组?
所以要清除这是我写的,因为我无法控制html,我使用Jquery添加数据绑定。
function addDataBind(index) {
var selectItem, textItem;
selectItem = $("#input" + index + "selectItem");
textItem = $("#input" + index + "textItem");
if (selectItem.length && textItem.length) {
selectItem.attr("data-bind", "value: arrayVal[" + index + "], valueUpdate: 'afterkeydown'"
textItem.attr("data-bind", "visible: arrayVal[" + index + "] == 'RST'");
}
}
使用this.arrayVal()[$ index]在firefox中不起作用,但在chrome中有效。 但使用this.arrayVal [$ index]同时适用于firefox和chrome。
答案 0 :(得分:0)
这里的一个主要问题似乎是你没有正确引用可观察数组,如果arrayVal
确实是你需要做的可观察数组:
<input type="text" value="2" data-bind="visible: this.arrayVal()[2].name == 'RST'"/>
要动态初始化value属性,您需要执行以下操作:
<div data-bind="foreach: this.arrayVal">
<input type="text" data-bind="visible: name == 'RST', value: $index"/>
</div>
这消除了在视图中直接引用数组索引的丑陋。