2014-10-16 16 views
9

Wysyłam żądanie do serwera i chcę warunkowo przekierować na inną stronę (nie kątową) po otrzymaniu odpowiedzi. Tak więc nawigacja dzieje się wewnątrz części składowej obietnicy.

Próbowałem:

$location.path(url) 

i

$window.location.href = url; 
$windo.location.reload(); 

nic nie działa.

Ale jeśli otoczyć którekolwiek z tych dwóch połączeń z setTimeout(navigate,0) nastąpi przekierowanie.
Wygląda na to, że w czasie cyklu trawienia pojawia się urna Angulara.

Czy ktoś może wyjaśnić lub udostępnić linki wyjaśniające, co naprawdę się dzieje.

+1

Prawdopodobnie część związana z trawieniem. To powinno działać dobrze, myślę: 'window.location.href = url;'. – dfsq

+1

@dfsq Tak, to działa =) Ale to jest jak "Użyj siły, Luke" =) –

+0

Fajnie, z przyjemnością pomożemy! – dfsq

Odpowiedz

1

Po dokonaniu zmiany, a przed zakończeniem obsługi Obiecuję spróbować zrobić:

$scope.$$phase || $scope.$apply(); 

To powinno zapełnić zmiany.

+0

cóż, jest wykonywany wewnątrz cyklu trawienia. Po kilku ponownych uruchomieniach i CTrl + F5 pracowało z prostą aktualizacją $ window.location.href. Nie rozumiem dlaczego. –

Powiązane problemy