【发布时间】:2012-04-20 16:31:10
【问题描述】:
我对 Knockout.js 还很陌生,所以这可能是一个愚蠢的问题。
我正在阅读 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>
【问题讨论】:
-
不,没有干净的方法来保存它们。但无论如何,拆分可用选项并不是一个好主意——要么将整个数据放在视图模型中,要么放在视图中,不要混合使用。为什么需要这个“功能”?也许有更好/更清洁的方法。
-
我主要关心的是性能:动态添加 100 个项目而不是使用已经渲染的项目似乎不是一个好主意。尤其是在移动等低功耗场景中。
-
当它成为一个问题时可能会担心性能......此外,选择框中的 100 个项目也不完全理想。
标签: knockout.js