我对Knockout.js相当陌生,因此这可能是一个愚蠢的问题。将现有的选择选项绑定到Knockout视图模型
我在阅读Bindings文档,特别是options binding。它说,应用绑定时:
任何以前的选项将被删除。
有没有办法保留现有的选项?
<select data-bind="options: availableOptions, optionsText: 'name', value: selectedOption">
<option value="1">One</option>
<option value="2" selected>Two</option>
</select>
<script type="text/javascript">
var option = function(name, value) {
this.name = name;
this.value = value;
};
var viewModel = {
availableOptions : ko.observableArray([]),
selectedOption : ko.observable()
};
</script>
没有,没有干净的方法来保护它们。但是分解可用选项并不是一个好主意 - 要么将整个数据放在视图模型中,要么放在视图中,不要混合使用。你为什么需要这个“功能”?也许有更好的/更清洁的方式。 – Niko 2012-04-20 16:54:48
我的主要担忧是性能:动态添加100个项目而不是使用已经渲染的项目似乎不是一个好主意。特别是在像手机这样的低功耗场景中。 – DreamSonic 2012-04-20 18:05:22
当它成为一个问题时,可能会担心性能......此外,选择框中的100个项目也不是完全理想的。 – 2012-10-10 19:24:10