Próbuję przekierować na inną trasę używając:
$location.path("/route");
Ale z jakiegoś powodu to nie działa. Zrobiłem widget autouzupełniania przy użyciu jQuery-UI i wywołuję funkcję z zakresu, gdy użytkownik wybierze opcję. Debugowałem go i wchodzi do funkcji, ale nigdy nie jest przekierowywany na inną trasę. Zmienia trasę tylko po naciśnięciu klawisza.
Myślę, że to trochę dziwne, ale nie wymyśliłem, jak to rozwiązać. użyłem
window.location = "#/route";
i działa, ale chcę użyć tej path()
funkcji.
Czy ktoś ma pojęcie, dlaczego tak się dzieje?
Nie zapomnij wstrzyknąć
$location
do kontrolera.źródło
Zakładając, że nie używasz routingu html5, spróbuj
$location.path("route")
. Spowoduje to przekierowanie przeglądarki do#/route
tego, czego chcesz.źródło
Jeśli potrzebujesz przekierować z aplikacji kątowej, użyj
$window.location
. To był mój przypadek; miejmy nadzieję, że ktoś uzna to za przydatne.źródło
Sprawdź swoją metodę routingu:
jeśli twój stan routingu jest taki
.state('app.register', { url: '/register', views: { 'menuContent': { templateUrl: 'templates/register.html', } } })
wtedy powinieneś użyć
$location.path("/app/register");
źródło
Trudno powiedzieć bez znajomości kodu. Domyślam się, że
onchange
zdarzenie nie jest uruchamiane po zmianie wartości pola tekstowego z kodu JavaScript.Są na to dwa sposoby; pierwszy to dzwonienie
onchange
samemu, a drugi to czekanie, aż pole tekstowe straci ostrość.Sprawdź to pytanie ; ten sam problem, inne ramy.
źródło