私は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>
いいえ、それらを保存する簡単な方法はありません。しかし、利用可能なオプションを分割することは、とにかく良い考えではありません。データ全体をビューモデルやビューに入れても、それを混ぜないでください。なぜこの "機能"が必要ですか?たぶん、より良い/クリーンな方法があります。 – Niko
私の主な関心事はパフォーマンスです。すでにレンダリングされているものを使用する代わりに、動的に100個のアイテムを追加することは良いアイデアのようには見えません。特にモバイルのような低電力シナリオでは。 – DreamSonic
問題が発生したときにパフォーマンスが気になるかもしれません...さらに、選択ボックス内の100個のアイテムはまったく理想的ではありません。 –