AngularJs - anulowanie zdarzenia zmiany trasy
Jak anulować zdarzenie zmiany trasy w AngularJs?
Mój obecny kod to
$rootScope.$on("$routeChangeStart", function (event, next, current) {// do some validation checks
if(validation checks fails){ console.log("validation failed"); window.history.back();// Cancel Route Change and stay on current page }
});
dzięki temu, nawet jeśli walidacja się nie powiedzie, Angular pobiera następny szablon i powiązane dane, a następnie natychmiast przełącza się z powrotem do poprzedniego widoku/trasy. nie chcę, aby kątowy ciągnął następujący szablon & amp; data, jeśli walidacja się nie powiedzie, najlepiej byłoby, gdyby nie było metody window.history.back (). Próbowałem nawet event.preventDefault (), ale bezskutecznie.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
8 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
https://github.com/angular/angular.js/issues/2109
https://github.com/angular/angular.js/issues/2109
Edycja 06.03.2018
można go znaleźć w dokumentacji:
https://docs.angularjs.org/api/ng/service/$ lokalizacja wydarzenia - $ # locationChangeStart
https://docs.angularjs.org/api/ng/service/$location#event-$locationChangeStart
Przykład:
Anonimowy użytkownik
Potwierdzenie od:
Bardziej kompletny przykład kodu z użyciem >
Nie jestem do końca zadowolony z podłączenia tego do mojego kontrolera głównego (kontrolera najwyższego poziomu). Czy istnieje lepsza próbka, którą chciałbym poznać. Jestem nowy w Angular :-)
Anonimowy użytkownik
Potwierdzenie od:
aw moim głównym kontrolerze:
Uwaga: istnieje dyskusja na temat tego problemu w witrynie kątowej, która nie została jeszcze rozwiązana:
https://github.com/angular/angular.js/pull/4192
https://github.com/angular/angular.js/pull/4192
EDIT
:
Aby odpowiedzieć na komentarz, oto więcej szczegółów na temat działania usługi LoginService. Zawiera 3 funkcje:
(*) Moja sesja zapełnia się przy zmianie trasy. Zastąpiłem metodę then when (), aby wypełnić sesję, gdy jest pusta.
Oto kod:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
mój post może pomóc komuś w przyszłości.
Anonimowy użytkownik
Potwierdzenie od:
operacja oparta na następnej trasie
), wpisz i zadzwoń wewnątrz :