我有一个显示 20 行数据的 knockout.js 视图。每行都有一个与 knockout.js 绑定的 select 2 控件。(下面你可以看到我的绑定处理程序)
现在每个 select 2 指向同一个 items 数组。这个数组有大约 10.000 个条目。这会导致整个页面变慢(大约 2-3 秒冻结时间)
我正在考虑仅在用户单击该行时加载选项。像这样:
self.setSelectedRow = function (entry) {
entry.options(allOptions);
var value = entry.intialValue;
entry.StationdId(value);
};
在此之后,选择 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);
}
};