Aurelia Выберите Отключить - PullRequest
0 голосов
/ 09 мая 2018

У меня есть коллекция select полей и input полей в моем проекте Aurelia, и мне нужно отключать одно конкретное поле выбора каждый раз, когда значение изменяется в определенном поле ввода.Проблема в том, что каждый раз, когда я меняю значение в поле ввода, состояние disabled в поле выбора не меняется.

Я использую BindingEngine для наблюдения каждый раз, когда изменяется значение поля ввода.У меня есть массив логических значений, которые представляют значения привязки, которые связаны с атрибутом disable.bind каждого поля выбора.

Я хотел бы знать, как изменять состояние disable.bind определенного поля выбора каждый раз, когда значение изменяется на входе.

Ожидаемое поведение: если значение поля input больше 0, я включаю select, иначе я отключаю его.

У меня есть демо здесь: https://gist.run/?id=726eef81bb88e8a695d4ae5df6b2e679

1 Ответ

0 голосов
/ 09 мая 2018

Проблема очень тонкая. Это ваш массив:

this.array = [true,false,true,false];

И вы привязываетесь к этому так:

<select disabled.bind="array[$index]">

Вы думаете , что вы привязываетесь к переменной (а именно к массиву), но на самом деле вы привязываетесь к значению в этом индексе массива, которое является буквальным значением true или false.

Для индекса 0 привязка фактически такая же:

<select disabled.bind="true">

Буквенные значения, конечно, не могут изменяться - могут только переменные, которые их содержат.


Если вы измените свой массив на что-то вроде этого:

this.array = [{disabled:true},{disabled:false},{disabled:true},{disabled:false}];

И ваша привязка к этому:

<select disabled.bind="array[$index].disabled">

Тогда должно работать.

Примечание:

В целом, в вашем коде есть несколько улучшений, не последним из которых является размещение ваших подписок на противоположном жизненном цикле. Смотрите эту обновленную суть: https://gist.run/?id=a01425ec61a4dc7c1997408ff92c52a2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...