У меня есть пользовательский элемент управления со следующим кодом. Я ожидаю, что «Вариант 1» будет выбран при перезагрузке страницы. Но ничего не выбрано. Но я могу вручную выбрать любой из вариантов.
Первоначально результат
Change event: Setting observable to abc
Change event: Setting observable to def
Update: Element value = abc, Observable value = def
Update: Element value = def, Observable value = def
Change event: Setting observable to def
Change event: Setting observable to abc
Update: Element value = abc, Observable value = abc
Change event: Setting observable to abc
Update: Element value = def, Observable value = abc
Что неправильно в установке начального значения переключателя?
У меня есть пользовательский элемент управления со следующим кодом. Я ожидаю, что «Вариант 1» будет выбран при перезагрузке страницы. Но ничего не выбрано. Но я могу вручную выбрать любой из вариантов. Первоначально результат [code]Element value = on, Observable value = abc [/code] Но после выбора переключателя вручную [code]Change event: Setting observable to abc Change event: Setting observable to def Update: Element value = abc, Observable value = def Update: Element value = def, Observable value = def Change event: Setting observable to def Change event: Setting observable to abc Update: Element value = abc, Observable value = abc Change event: Setting observable to abc Update: Element value = def, Observable value = abc [/code] Что неправильно в установке начального значения переключателя?
this.tempitem = ko.observable("def"); // Initially selects "Option 2" this.tempitem = ko.observable("abc"); console.log("Initial value of tempitem:", ko.unwrap(self.tempitem));
ko.bindingHandlers.rbChecked = { init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { var value = valueAccessor();
// Handle the change event ko.utils.registerEventHandler(element, "change", function() { console.log(`Change event: Setting observable to ${element.value}`); value(element.value); // Update the observable });
// Set the initial checked state if (ko.unwrap(value) === element.value) { console.log("Init: Setting element.checked = true"); element.checked = true; }
if (value != undefined && $(element).val() == value()) { setTimeout(function() { var toggle = $(element).closest('.btn-toggle'); $(toggle).children('.btn').removeClass('active'); $(toggle).children('.btn').removeClass('btn-primary'); $(toggle).children('.btn').addClass('btn-default');
var btn = $(element).closest('.btn'); $(btn).addClass('btn-primary'); $(btn).addClass('active');
}, 0); } }, update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { const value = ko.unwrap(valueAccessor()); console.log(`Update: Element value = ${element.value}, Observable value = ${value}`);
// Ensure the checked state reflects the observable value element.checked = value === element.value;
// If the radio button is checked, trigger the change event to update the observable if (element.checked) { element.dispatchEvent(new Event("change", { bubbles: true })); }
if ($(element).val() == ko.unwrap(valueAccessor())) {