20行のデータを表示するknockout.jsビューがあります。各行には、knockout.js にバインドされた select 2 コントロールがあります。(以下に、私のバインディング ハンドラーを示します)
次に、アイテムの同じ配列への 2 つのポイントをそれぞれ選択します。この配列には約 10.000 のエントリがあります。これにより、ページ全体の速度が低下します (約 2 ~ 3 秒のフリーズ時間)。
ユーザーが行をクリックしたときにのみオプションをロードすることを考えています。このような:
self.setSelectedRow = function (entry) {
entry.options(allOptions);
var value = entry.intialValue;
entry.StationdId(value);
};
この後、select 2 は展開可能になり、オプションを選択できますが、初期値は適用されません。私が間違っていることについてのヒントはありますか?
バインディング ハンドラ:
ko.bindingHandlers.select2 = {
init: function (el, valueAccessor, allBindingsAccessor, viewModel) {
ko.utils.domNodeDisposal.addDisposeCallback(el, function () {
$(el).select2('destroy');
});
var allBindings = allBindingsAccessor(),
select2 = ko.utils.unwrapObservable(allBindings.select2);
$(el).select2(select2);
}
};