Динамическое радио / чекбокс решение в Аурелии - PullRequest
0 голосов
/ 12 января 2019

У меня есть суть, демонстрирующая мою проблему здесь:

https://gist.run/?id=e2ccd5925e383f2fc36ad277c31bcf23

Версия чекбокса работает нормально, если вы удалите чек, он обновит модель правильно, но если вы измените выбранную радиокнопку, она сохранит истинное значение на радио, которое убрало свой выбор. Если я уберу значение model.bind="true", оно будет писать «вкл» вместо «истина». Я хочу true / false, а не вкл / выкл.

Я хочу, чтобы объект обновлял свое свойство как истинное или ложное в зависимости от того, выбран он или нет динамически. В моем сценарии я не знаю, сколько переключателей или флажков нужно будет выбрать. Я только знаю, что в случае, если это не коллекция, я хочу только одну, а в случае, если это коллекция, я хочу выбрать неизвестное число.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Как и в других ответах упоминается - <input type="checkbox"> поведение отличается от <input type="radio">.

Я раздвоил вашу суть и внес следующие изменения, чтобы ваш сценарий с переключателем работал в aurelia:

1) Добавлена ​​функция к первому объекту в вашей коллекции params с именем selectedChanged (она не должна быть там, может вместо этого находиться в классе viewmodel, возможно, это лучшее место для него). Он отвечает за обработку изменений выбора в группе переключателей, в частности, он будет перебирать коллекцию options (второй параметр) и присваивать свойству selected значение true, если параметр id соответствует первому параметру. этой функции и значение false для всех остальных параметров.

2) В input есть событие с именем change, я делегирую его функции, названной selectedChanged, упомянутой выше, передавая значение option.id и options в качестве параметров.

https://gist.run/?id=5f38414fde799dfc145fc1291d9f2fd3&sha=f12283b08bfb45e77b8280d46a3709b6ccb82768

0 голосов
/ 12 января 2019

Я думаю, что вы хотите достичь (включение / выключение индивидуального значения) с радио, что невозможно, так как способ работы (выбор одного значения из набора) отличается с помощью флажка (включение отдельного значения / выкл.) ( ссылка MDN ). Поэтому, если вы действительно хотите иметь радио-подобный внешний вид с поведением флажка, рассмотрите возможность использования некоторых CSS и дополнительных элементов DOM, чтобы он выглядел так, и вел себя так.

...