У меня есть html select
, который связан с моделью представления через KnockoutJS и отображается как плагин выбор урожая через пользовательская привязка.
Выбранная разметка:
<select class="chzn-select" data-bind="foreach: ControllersAndActions, selectedOptions: NewPermissionCAs, chosen: { PlaceholderText: 'Select', AddPlaceholder: true, ChosenOptions: {allow_single_deselect: true} }">
<optgroup data-bind="attr: {label: ControllerName}, foreach: Actions">
<option data-bind="text: $data"></option>
</optgroup>
</select>
Пользовательская привязка с возможностью выбора, которую я использую:
ko.bindingHandlers.chosen = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var options = ko.utils.unwrapObservable(valueAccessor()) || {};
var allBindings = allBindingsAccessor();
var attrList = { placeholderText: options.PlaceholderText };
$.extend(attrList, allBindings.chosen);
if (options.AddPlaceholder) {
$(element).attr('data-placeholder', attrList.placeholderText).addClass('chzn-select');
} else {
$(element).addClass('chzn-select');
}
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var options = ko.utils.unwrapObservable(valueAccessor()) || {};
$(element).chosen(options.ChosenOptions);
$(element).trigger("liszt:updated");
}
};
Всякий раз, когда NewPermissionCAs
наблюдаемое изменяется (это происходит, когда я выбираю что-то через «выбранный» графический интерфейс), запускается функция, которая должна сохранить новое значение на сервере.
Проблема в том, что серверу нужны как данные метки группы опций, так и выбранное значение опции.
Как я могу получить метку группы опций для группы, в которой находится выбранная опция в моем функциональном коде?