当我在选择列表中选择数字时,我想自动生成多个场对。
每对都会将值绑定到模型,而模型又存储在数组中。
我创建了一个non-working fiddle。谁能告诉我我做错了什么?
<div class="editor-label">
<label><b>No of double fields to create</b>
</label>
</div>
<div class="editor-field">
<select data-bind="options: numberOfFields, value: selectedNumberOfFields, optionsCaption: 'Choose Number'"></select>
</div>
<br><br>
<div data-bind="visible: showFields()">
<div data-bind="foreach: parameters">
<label>Param:
<input data-bind="value: param" />
</label>
<label>Operator:
<input data-bind="value: operator" />
</label>
</div>
</div>
答案 0 :(得分:3)
以下是您正在寻找的想法:
我所做的是修复Parameters
中的拼写错误然后我删除了selectedNumberOfFields
的订阅,而是使用ko.computed
代替showFields
:
self.showFields = ko.computed(function() {
var fields = [];
for (var i = 0; i < self.selectedNumberOfFields(); i++) {
fields.push(new Parameter());
}
return fields;
});
你的绑定现在看起来像这样:
<div data-bind="foreach: showFields">
<div>
<label>Param:
<input data-bind="value: param" />
</label>
<label>Operator:
<input data-bind="value: operator" />
</label>
</div>
</div>