我目前正在研究一些 Knockout js 模板的东西。我的要求是我需要使用字符串和行的索引值的组合来设置字段(输入)的名称。例如“xxx3”。
我尝试了两种选择。
'xxx' + ko.utils.arrayIndexOf(viewModel.mycollection, $data)
和
'xxx' + $index
第一个选项总是为我的索引值提供'-1',而第二个选项不起作用,因为我似乎只能使用 $index 值而没有任何字符串连接。
有人可以告诉我是否可以在淘汰赛中将字符串值连接到 $index 值,以便我可以将其设置为输入字段的名称属性。
我想要的最终结果应该是这样的。
<input class="text-box single-line" data-val="true"
data-val-required="The XXX field is required." id="XXX" type="text" name="XXX3">
这是我的模板的样子。
<table id ="editorRows" class="table">
<tbody data-bind='template: {name: "rowTemplate", foreach: Rules }'></tbody>
</table>
<script id="rowTemplate" type="text/html">
<tr data-bind="attr: { id: RuleKey }">
<td>
<div class="editor-field">
<input class="text-box single-line" data-val="true" data-val-required="The Name field is required." id="Name" type="text" data-bind="value: Name, attr: {name : 'Rules[' + $index + '].Name'}" />
<span class="field-validation-valid" data-bind="attr : { 'data-valmsg-for': 'Rules[' + $index + '].Name'}" data-valmsg-replace="true"></span>
</div>
</td>
</tr>
</script>