Как настроить привязку флажка в Aurelia

У меня есть список флажков, когда пользователь устанавливает один из флажков, функция вызывается в файле .js, а она, в свою очередь, вызывает метод dataservice.js, который вызывает контроллер webapi, все это работает нормально и возвращает правильные данные.

Что происходит, когда процесс завершен, так это то, что флажок, запускающий последовательность, не установлен. Я проверил результат, и для schoolDistrict.IsChecked для этого элемента установлено значение true, что правильно.

Как сделать, чтобы флажок был установлен?

Ниже приведен код, но я не уверен в привязке check.one-way.

<li repeat.for="schoolDistrict of schools.Districts">                                     
  <input type="checkbox" checked.one-way="schoolDistrict.IsChecked" value="${schoolDistrict.Value}" click.trigger="searchSchoolDistrict()"/>${schoolDistrict.Name}
</li>

Любая помощь будет очень высоко ценится.


person DazedandConfused    schedule 09.02.2016    source источник


Ответы (1)


Здесь есть несколько проблем:

  • Проблема, вероятно, заключается в том, что ваш код searchSchoolDistrict() изменяет свойство IsChecked, но привязка one-way не прослушивает изменение.
  • Хотя интерполяция значения будет работать, использование синтаксиса привязки, вероятно, будет лучшим стилем.
  • Настройка change.delegate более надежна и будет прослушивать все изменения флажка, что является лучшей практикой для флажков.
  • Устарело Убедитесь, что вы выбрали правильную область для searchSchoolDistrict(), так как она, вероятно, находится в $parent, а не schoolDistrict.

Попробуйте использовать это вместо этого:

<li repeat.for="schoolDistrict of schools.Districts">                                     
  <input type="checkbox" 
    checked.bind="schoolDistrict.IsChecked" 
    value.one-way="schoolDistrict.Value"
    change.delegate="searchSchoolDistrict()"/>
  ${schoolDistrict.Name}
</li>
person Matthew James Davis    schedule 09.02.2016
comment
если это полезно, оцените и подпишитесь - person Matthew James Davis; 09.02.2016
comment
Вы совершенно правы в том, что searchSchoolDistrict меняет значение IsChecked. Спасибо, это сработало. - person DazedandConfused; 10.02.2016
comment
спасибо за решение, мне тоже помогло. но теперь я немного сбит с толку, потому что $parent больше не нужен, может кто-нибудь прояснить это? - person fops; 10.02.2016
comment
@fops механизм привязки был улучшен для поиска доступных родителей, чтобы сделать использование $parent необязательным - person PW Kad; 03.10.2016
comment
Я потратил много времени, не понимая, что функция click.delegate нужна для return true;. - person LStarky; 17.10.2019