Я пытаюсь выполнить следующие действия без использования дополнительных пользовательских функций:Aurelia массив связывания с Флажок выбора и ссылки элемента отключить
- магазин выбранных элементов в новом массиве позволяют
- только текстовое поле, если ее соответствующий флажок был выбран
- уследить обновленные значения в новом массиве
Ниже приведен упрощенный пример моего кода:
<div repeat.for="item of itemSearch.rates">
<input type="checkbox" ref="item.$index" model.bind="item" checked.bind="selectedRates">
<input type="text" disabled.bind="item.$index.checked == false" value.bind="item.total_value">
</div>
В настоящее время, с вышеуказанным, работает только checked.bind
. Выбранные элементы сохраняются в моем новом массиве selectedRates
.
Однако мой disabled.bind
не запускается вообще.
Если я удалю checked.bind
из коробки, disabled.bind
работает отлично.
Также обновляются обновленные значения до selectedRates
иногда после отправки и элементы потеряли фокус.
Я знаю, что наблюдение массива официально не поддерживается as mentioned here, что-то, что я заметил, стоит упомянуть.
Вопросы
- Есть ли способ, чтобы получить
checked.bind
работать вместе сref
&disabled.bind
? - Любая идея, почему я вижу этот массив наблюдаемых поведение как иногда?
Update
Я нашел "наблюдаемые значения" вопрос появляться периодически в поджигатель при входе в selectedRates
.
При отображении его в html изменения значений всегда обновляются, причем использование как @ Fabio использования BindingEngine
, так и моего checked.bind
. Chrome всегда отображает и регистрирует правильные значения.
Понятия не имею, почему, или если я должен быть обеспокоен этим.
Спасибо за отзыв @Fabio. Добавление этого свойства 'selected' к моим объектам будет работать, но я по-прежнему предпочитаю не иметь пользовательских функций, если это возможно. Может быть, это ошибка, почему 'check.bind' не работает вместе с' ref' и 'disabled.bind'? – JvR
Что касается наблюдаемых значений, я обнаружил, что проблема действительно появляется только в firebug при регистрации выбранных Rates. При отображении его в html изменения значения всегда обновляются, причем как использование вами реализации BindingEngine, так и мой 'checked.bind'. Chrome всегда отображает и регистрирует правильные значения. – JvR
Он присваивает индекс массива этому свойству [как описано здесь] (http://stackoverflow.com/questions/28418345/aurelia-repeat-for-access-index-of-item) и отлично работает с 'disabled.bind = "item. $ index.checked == false" '. Обратите внимание на разницу между приведенными ниже примерами [with checked.bind] (https://gist.run/?id=0c64a1602738774bb7658cf28db726ee) и [без checked.bind] (https://gist.run/?id=670c62155647e16d8be5f8a79772ff34) – JvR