de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Duke Dougal
Duke Dougal
Question

Jak wykonać funkcję kontrolera AngularJS podczas ładowania strony?

Obecnie mam stronę w Angular.js, która umożliwia wyszukiwanie i wyświetla wyniki. Użytkownik klika na wynik wyszukiwania, a następnie klika przycisk wstecz. Chcę, aby wyniki wyszukiwania zostały wyświetlone ponownie, ale nie mogę wymyślić, jak uruchomić wyszukiwanie, aby je wykonać. Oto szczegóły:

  • Moja strona Angular.js jest stroną wyszukiwania, z polem wyszukiwania i przyciskiem wyszukiwania. przycisk wyszukiwania. Użytkownik może ręcznie wpisać zapytanie i nacisnąć przycisk i a zapytanie ajaxowe jest wystrzeliwane i wyświetlane są wyniki. Aktualizuję adres URL za pomocą wyszukiwanego hasła. To wszystko działa dobrze.
  • Użytkownik klika na wynik wyszukiwania i zostaje przeniesiony na inną stronę - to też działa dobrze.
  • Użytkownik klika przycisk wstecz i wraca do mojej strony wyszukiwania kątowego, a poprawny adres URL jest wyświetlany, w tym wyszukiwane hasło. Wszystko działa dobrze.
  • Powiązałem wartość pola wyszukiwania z wyszukiwanym terminem w adresie URL, więc zawiera on oczekiwany termin wyszukiwania. Wszystko działa dobrze.

Jak mogę sprawić, aby funkcja wyszukiwania została wykonana ponownie bez konieczności naciskania przez użytkownika przycisku "szukaj"? Gdyby to było jquery, wykonałbym funkcję w funkcji documentready. Nie mogę'zobaczyć odpowiednika Angular.js.

355 2013-03-17T07:43:56+00:00 3
Roshana Pitigala
Roshana Pitigala
Edytowane pytanie 22. czerwca 2018 в 12:43
Programowanie
angularjs
onload
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
Dmitry Evseev
Dmitry Evseev
17. marca 2013 в 4:22
2013-03-17T16:22:59+00:00
Więcej
Źródło
Edytuj
#18811386

Z jednej strony, jak powiedział @Mark-Rajcok, możesz po prostu uciec z prywatną funkcją wewnętrzną:

// at the bottom of your controller
var init = function () {
   // check if there is query in url
   // and fire search in case its value is not empty
};
// and fire it after definition
init();

Możesz również rzucić okiem na dyrektywę ng-init. Implementacja będzie wyglądać podobnie:

// register controller in html
<div data-ng-controller="myCtrl" data-ng-init="init()"></div>

// in controller
$scope.init = function () {
    // check if there is query in url
    // and fire search in case its value is not empty
};

Ale uważaj na to jako angular documentation implies (since v1.2) to NOT use ng-init for that. Jednak imo zależy to od architektury twojej aplikacji.

Użyłem ng-init, gdy chciałem przekazać wartość z back-end do aplikacji kątowej:

<div data-ng-controller="myCtrl" data-ng-init="init('%some_backend_value%')"></div>
Dmitry Evseev
Dmitry Evseev
Edytowana odpowiedź 8. grudnia 2013 в 10:33
425
0
 holographic-principle
holographic-principle
17. marca 2013 в 8:52
2013-03-17T08:52:06+00:00
Więcej
Źródło
Edytuj
#18811385

Spróbuj tego?

$scope.$on('$viewContentLoaded', function() {
    //call it here
});
135
0
 CodeOverRide
CodeOverRide
13. lutego 2014 в 12:27
2014-02-13T00:27:54+00:00
Więcej
Źródło
Edytuj
#18811387

Możesz to zrobić, jeśli chcesz obserwować obiekt DOM viewContentLoaded, aby zmienić, a następnie coś zrobić. użycie $scope.$on działa również, ale inaczej, zwłaszcza gdy masz tryb jednej strony na swoim routingu.

 $scope.$watch('$viewContentLoaded', function(){
    // do something
 });
27
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
mohidil qodirova
Zarejestrowany 5 godzin temu
2
Jasur Fozilov
Zarejestrowany 19 godzin temu
3
Zuxriddin Muydinov
Zarejestrowany 1 dzień temu
4
Денис Анненский
Zarejestrowany 3 dni temu
5
365
Zarejestrowany 1 tydzień temu
BG
DE
EL
ES
FR
ID
IT
JA
KO
LT
NL
PL
PT
RU
SK
SL
SV
TR
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem