Kako izvesti funkcijo kontrolerja AngularJS ob nalaganju strani?
Trenutno imam stran Angular.js, ki omogoča iskanje in prikazuje rezultate. Uporabnik klikne na rezultat iskanja, nato pa klikne gumb nazaj. Želim, da se rezultati iskanja ponovno prikažejo, vendar ne morem ugotoviti, kako naj sprožim izvajanje iskanja. Tukaj so podrobnosti:
- Moja stran Angular.js je iskalna stran z iskalnim poljem in iskalnim rezultatom. gumbom. Uporabnik lahko ročno vnese poizvedbo in pritisne gumb ter in sproži se poizvedba ajax ter prikažejo se rezultati. URL posodobim z iskalnim izrazom. Vse to deluje v redu.
- Če uporabnik klikne na rezultat iskanja in je preusmerjen na drugo stran, tudi to deluje v redu.
- Uporabnik klikne gumb nazaj in se vrne na mojo angularno iskalno stran, pri čemer se prikaže pravilen URL, vključno z iskalno besedo. Vse deluje v redu.
- Vrednost iskalnega polja sem povezal z iskalnim izrazom v naslovu URL, tako da vsebuje pričakovani iskalni izraz. Vse deluje v redu.
Kako naj poskrbim, da se funkcija iskanja ponovno izvede, ne da bi uporabnik moral pritisniti gumb za iskanje? Če bi šlo za jquery, bi izvedel funkcijo v funkciji documentready. Ne vidim enakovredne funkcije za Angular.js.
355
3
Po eni strani, kot je dejal @Mark-Rajcok, se lahko izognete zasebni notranji funkciji:
Prav tako si lahko ogledate direktivo ng-init. Izvedba bo zelo podobna:
Vendar pazite na to, saj angularna dokumentacija nakazuje (od različice 1.2), da za to NE smete uporabljati
ng-init
. Vendar je to odvisno od arhitekture vaše aplikacije.Sam sem uporabil
ng-init
, ko sem želel prenesti vrednost iz zaledja v angularno aplikacijo:Poskusite to?
To lahko storite, če želite opazovati spremembo objekta DOM viewContentLoaded in nato nekaj storiti.Tudi uporaba $scope.$on deluje, vendar drugače, zlasti če imate pri usmerjanju način ene strani.