在attr绑定内部不能计算可观察的敲除
问题描述:
我正在尝试使用jquery.validate with knockout
。我有对象的列表,里面foreach
结合,在attr绑定内部不能计算可观察的敲除
我有这样的代码:
<tbody data-bind="foreach: fee">
<tr>
<td>
<input type="text" data-bind="textInput: fee, attr: {name : 'srv'+$index()}" data-val="true" data-val-number="error msg" data-val-regex="err msg" data-val-regex-pattern="\d+(\.\d{1,2})?" data-val-required="required"/>
<span class="field-validation-valid" data-valmsg-replace="true" data-bind="attr : { 'data-valmsg-for': 'srv'+$index()}" />
</td>
</tr>
</tbody>
输入名称正确计算,eg. srv0, srv1
等等 而验证范围的名称保持srv+$index()
。
如何解决?
答
这里可以正常工作。
vm = {
fee: ko.observableArray([{ fee: 1 }, { fee: 2 }])
};
ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<table>
<tbody data-bind="foreach: fee">
<tr>
<td>
<input type="text" data-bind="textInput: fee, attr: {name : 'srv'+$index()}" data-val="true" data-val-number="error msg" data-val-regex="err msg" data-val-regex-pattern="\d+(\.\d{1,2})?" data-val-required="required"/>
<span class="field-validation-valid" data-valmsg-replace="true" data-bind="attr : { 'data-valmsg-for': 'srv'+$index()}" />
</td>
</tr>
</tbody>
</table>
这_might_是因为你的自我封闭span标签 - 起点和跨度的结束标记是强制性的。尝试改变它有一个''。无法解决问题,但无论如何,你的代码会更好。 –
嗯,[不,不是](http://jsfiddle.net/q21umv9z/)。您可能需要发布更多代码来阐明发生的事情。 –
@JamesThorpe这真的是所有的代码,只是一个数据绑定=“foreach:费用”在tbody – Stuntman