Obecnie próbuję testu akceptacji na trasie zagnieżdżonej, która korzysta z tego samego komponentu dwa razy, ale z różnymi argumentami. Działa to dobrze, gdy uruchamiam go normalnie, jednak po uruchomieniu testu akceptacji zauważam, że argumenty komponentu nie są aktualizowane, co powoduje, że mój test kończy się niepowodzeniem. Oto przykładowy kod:Ember.js: atrybut komponentu nie został zresetowany podczas testowania
W index.hbs
mam:
{{index-view model=model type='location'}}
Moja index-view
komponent wygląda następująco:
<h1>{{title}} List</h1>
{{listing-table model=model type=type}}
Klikając na elemencie w listing-table
, ja potem przejść do locations.show
trasa, która zawiera trasę link-to
locations.show.devices
. Trasa locations.show.devices
zawiera:
{{listing-table model=model.devices type='device' exclude='locationName'}}
Jednak w moich testów akceptacyjnych, widzę (przez echo z tych atrybutów w JavaScript komponentu), które podczas model
i type
aktualizowanych, exclude
jest zawsze ustawiony na cokolwiek zostało ustawione kiedy składnik został pierwotnie wywołany.
Teraz mam zaznaczone (przez console.log()
), czy składnik jest ponownie wykorzystywane, czy nie, i widziałem, że zarówno init()
i didDestroyElement()
nazywane są dwukrotnie, co oznacza, że komponent przechodzi cały cykl życia dwa razy. Jednak nie mogę naprawdę zrozumieć, dlaczego mój argument exclude
nie jest w ogóle aktualizowany i dlaczego tak się dzieje tylko podczas testów akceptacyjnych?
This is a stripped down version of what I'm doing (oczywiście działa na Twiddle, ale nie w prawdziwym życiu!).
Czy można wkleić do danego komponentu? Wygląda na to, że coś jest nie tak ze swoim komponentem ... – acorncom
Nie jestem pewien, czy to rozwiąże problem, ale stan można udostępnić, jeśli ustawisz domyślną właściwość tablicy lub obiektu. Wygląda na to, że robisz zarówno _ i resetowanie wartości domyślnych w 'init()', więc nie jestem pewien, czy to jest przyczyną problemu. Oto więcej informacji na temat udostępniania: https://stackoverflow.com/a/19071065/916734 –
@acorncorn: [tutaj] (https://gist.github.com/finferflu/f4832e7dd6e3bcc78bbe5a0abfd87ee3) to js mojego komponentu. – finferflu