2016-02-09 16 views
7

Mam listę wyboru, gdy użytkownik sprawdza jedno z pól wyboru wywołuje funkcję w pliku .js, a następnie wywołuje metodę dataservice.js, która wywołuje kontroler Webapi wszystko działa poprawnie i zwraca poprawne dane.Jak ustawić powiązanie pola wyboru w Aurelia

Co się stanie, gdy proces się zakończy, oznacza, że ​​pole wyboru, które uruchomiło sekwencję, nie jest zaznaczone. Sprawdziłem wynik i schoolDistrict.IsChecked dla tego elementu jest ustawione na true, co jest poprawne.

Jak mogę zaznaczyć pole wyboru?

Poniżej znajduje się kod, ale jestem pewien, o check.one-way wiążą

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

Każda pomoc będzie bardzo mile widziane.

Odpowiedz

23

Istnieje kilka kwestii tutaj:

  • Problemem jest to prawdopodobnie, że kod searchSchoolDistrict() zmienia właściwość IsChecked, ale one-way wiązania nie nasłuchuje na zmianę.
  • Podczas interpolacji wartość zadziała, użycie składni powiązania jest prawdopodobnie lepszym stylem.
  • Konfigurowanie obiektu change.delegate jest bardziej niezawodne i będzie nasłuchiwać wszystkich zmian w polu wyboru, co jest najlepszą praktyką w przypadku pól wyboru.
  • Przestarzałe Upewnij się wybrać odpowiedni zakres dla searchSchoolDistrict(), gdyż prawdopodobnie mieszka na $parent i nie schoolDistrict.

Spróbuj użyć zamiast tego:

<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> 
+2

jeśli jest to pomocne, szybkość i subskrybować –

+0

Jesteś całkiem poprawne, że searchSchoolDistrict zmienia wartość IsChecked ,. Dziękuję, to działało. – Thunderchild

+1

dzięki za rozwiązanie, pomógł mi również. ale teraz jestem trochę zdezorientowany, ponieważ rodzic $ nie powinien być już potrzebny, czy ktoś może to wyjaśnić? – fops