2014-10-16 9 views
9

Invio una richiesta al server e desidero reindirizzare condizionatamente a un'altra pagina (non angolare) dopo che la risposta è stata ricevuta. Quindi la navigazione avviene all'interno di then parte di una promessa.

ho provato:

$location.path(url) 

e

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

non funziona nulla.

Ma se mi avvolgo uno di questi due chiamate con verifica setTimeout(navigate,0) reindirizzamento.
Sembra url di guardie angolari durante il ciclo di digestione.

chiunque può chiarire o condividere i link che spiegano ciò che realmente accade.

+1

Probabilmente una cosa correlata alla digestione angolare. Questo dovrebbe funzionare bene penso: 'window.location.href = url;'. – dfsq

+1

@dfsq Sì, funziona =) Ma è come "Usa la forza, Luke" =) –

+0

Cool, felice di aiutare! – dfsq

risposta

1

Dopo aver fatto il cambio, e prima di terminare il gestore promessa, prova a fare:

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

Questo dovrebbe popolare i cambiamenti.

+0

beh, è ​​eseguito all'interno di un ciclo di digestione. Dopo diversi riavvii e CTRL + F5 ha funzionato con un semplice aggiornamento di $ window.location.href. Non capisco perché. –

Problemi correlati