Knockout.js reset значение a выбирается обратно по умолчанию
У меня есть поле выбора, которое я заполняю с помощью нокаута. После того, как пользователь сделал некоторые варианты в форме, я хотел бы reset, чтобы выбрать поле обратно к его значению по умолчанию, которое установлено в optionsCaption
. Как бы вы это сделали? Я попытался установить его в пустую строку, но это оставляет его со значением, которое пользователь выбрал.
Вот мой код:
<select data-bind="options: components, optionsValue: 'Component', optionsText: 'Component', optionsCaption: 'Choose Component', value: component"></select>
Вот js:
self.components = ko.observableArray(["Component":"1234", "Component":"5678"]);
self.component = ko.observable();
То, что я затем пытаюсь сделать в другом разделе, следующее:
self.component("");
Однако это не имеет никакого эффекта.
EDIT: вот скрипка http://jsfiddle.net/BASY4/
Ответы
Ответ 1
Используйте
self.component(null);
вместо
self.component("");
Работа jsfiddle.
Другие значения разрешены только в том случае, если они находятся в списке источников (здесь self.components), иначе привязка значения немедленно сбрасывается.
Ответ 2
В зависимости от того, какую версию нокаута вы используете, измените ответ на этот вопрос.
Если вы используете версию 2.2.1, которую использует jsfiddle, то вам нужно будет использовать;
self.component(null);
// or
self.component(undefined);
Если вы должны были изменить эту версию до последней версии 2.3.0, тогда вы действительно можете использовать;
self.component(null);
// or
self.component(undefined);
// OR
self.component('');