Связывание Knockout.js с несколькими Select2
Мой вопрос: когда я связываю свой Select2 с Multiple с Knockout View Model. После выбора одного из параметров данные теряются во второй раз
KnockOutCode
$(window).load(function () {
ko.bindingHandlers.select2 = {
init: function (element, valueAccessor, allBindingsAccessor) {
var obj = valueAccessor(),
allBindings = allBindingsAccessor(),
lookupKey = allBindings.lookupKey;
$(element).select2(obj);
if (lookupKey) {
var value = ko.utils.unwrapObservable(allBindings.value);
$(element).select2('data', ko.utils.arrayFirst(obj.data.results, function (item) {
return item[lookupKey] === value;
}));
}
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).select2('destroy');
});
},
update: function (element) {
$(element).trigger('change');
}
};
ko.applyBindings(new ViewModel());
function ViewModel() {
var self = this;
self.MetricsModel = ko.observableArray([]);
GetMetrics();
function GetMetrics() {
$.ajax({
url: '/Admin/GetMetrics',
type: "POST",
dataType: "json",
success: function (returndata) {
self.MetricsModel(returndata);
},
error: function () {
alert("eRROR GET Applications");
}
});
};
}
$("#application-select-metrics").select2();
}
HTML-файл
<select multiple="multiple" id="application-select-metrics" class="form-control" data-bind="options: MetricsModel, optionsText: 'Metrics_Name', OptionsValue:'Metrics_ID', optionsCaption: 'Choose...', select2: {}"></select>
@*<select multiple="multiple" id="application-select-metrics" class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>*@
Обратите внимание, что закомментированные разделы, то есть жестко закодированные значения, работают, и это позволяет мне выбирать несколько значений, и с помощью Knockout он работает впервые, я получаю заполненный список, но после выбора один раз, во второй раз данные потерянный.
Пожалуйста помоги,
Спасибо,
РЕДАКТИРОВАТЬ: Как упомянул Hanes, я отредактировал код и ввел пользовательское связывание, но все же оно не работает, я не думаю, что раздел обновления пользовательского связывания работает должным образом, так как раскрывающийся список заполняется один раз, но не связывается во второй раз. Любая помощь будет с благодарностью.