<tbody data-bind='foreach: $root.icdCodes'>
<tr>
<td>
<input type="text" list="icdcodes" data-bind="value: DiagnosisCd, event: {focusout: $root.dxCodeLostFocus }">
<datalist id="icdcodes" data-bind="foreach: $root.icdCodesDropdown">
<option data-bind="text: $data.DiagnosisCd">
</option>
</datalist>
</td>
</tr>
</tbody>
vm.dxCodeLostFocus = function () {
vm.icdCodes.push({ ID: '', DiagnosisCd: '' });
};
我在UI中动态添加了一个html5 datalist
控件。可观察数组icdCodesDropdown
包含超过10,000条记录。每次我选中与datalist
关联的输入文本控件时,需要10秒才能添加另一个输入控件。
可以做些什么来加快响应速度吗?
答案 0 :(得分:0)
看看https://github.com/mbest/knockout-repeat 我们将它用于大型集合而不是foreach。
答案 1 :(得分:0)
以下链接帮助我解决了这个问题。 我不是一次性填充数据列表,而是在用户在输入控件中输入内容时动态填充它。
http://www.raymondcamden.com/index.cfm/2012/6/14/Example-of-a-dynamic-HTML5-datalist-control