Viac na
Ako vykonať funkciu radiča AngularJS pri načítaní stránky?
V súčasnosti mám stránku Angular.js, ktorá umožňuje vyhľadávanie a zobrazuje výsledky. Používateľ klikne na výsledok vyhľadávania a potom klikne na tlačidlo späť. Chcem, aby sa výsledky vyhľadávania opäť zobrazili, ale neviem prísť na to, ako spustiť vykonanie vyhľadávania. Tu je detail:
- Moja stránka Angular.js je stránka s vyhľadávaním, s vyhľadávacím poľom a vyhľadávaním tlačidlom. Používateľ môže ručne zadať dotaz a stlačiť tlačidlo a a spustí sa ajaxový dotaz a zobrazia sa výsledky. Aktualizujem adresu URL s hľadaným výrazom. To všetko funguje v poriadku.
- Používateľ klikne na výsledok vyhľadávania a dostane sa na inú stránku - to tiež funguje v poriadku.
- Používateľ klikne na tlačidlo späť a vráti sa na moju stránku s angulárnym vyhľadávaním a zobrazí sa správna adresa URL vrátane hľadaného výrazu. Všetko funguje v poriadku.
- Hodnotu vyhľadávacieho poľa som viazal na hľadaný výraz v adrese URL, takže obsahuje očakávaný hľadaný výraz. Všetko funguje v poriadku.
Ako dosiahnem, aby sa funkcia vyhľadávania opäť spustila bez toho, aby používateľ musel stlačiť tlačidlo "search"? Ak by to bolo jquery, potom by som vykonal funkciu vo funkcii documentready. Nevidím ekvivalent Angular.js.
355
3
Na jednej strane, ako povedal @Mark-Rajcok, môžete sa jednoducho zbaviť súkromnej vnútornej funkcie:
Tiež sa môžete pozrieť na direktívu ng-init. Implementácia bude veľmi podobná:
Ale dajte si na to pozor, pretože dokumentácia angularu naznačuje (od verzie 1.2), aby ste na to nepoužívali
ng-init
. Avšak imo to závisí od architektúry vašej aplikácie.Ja som použil
ng-init
, keď som chcel odovzdať hodnotu z back-endu do angular aplikácie:Vyskúšajte toto?
Môžete to urobiť, ak chcete sledovať, či sa objekt DOM viewContentLoaded zmení, a potom niečo urobiť. použitie $scope.$on funguje tiež, ale inak, najmä ak máte na smerovaní režim jednej stránky.