Redirecionar usando o AngularJS

Estou tentando redirect para outra rota usando:

$location.path("/route"); 

Mas, por algum motivo, não está funcionando. Eu fiz um widget auto-complete usando jQuery-UI e estou chamando uma function do escopo uma vez que o usuário seleciona uma opção. Depurei-o e ele entra na function, mas nunca é redirecionado para a outra rota. Só muda a rota quando eu pressiono uma tecla.

Eu acho que é meio estranho, mas eu não descobri como resolver isso. eu usei

 window.location = "#/route"; 

e funciona, mas eu quero usar a function path() .

Alguém sabe por que isso está acontecendo?

Com um exemplo do código que não funciona, será fácil responder a essa pergunta, mas com essas informações, o melhor que posso pensar é que você está chamando o $ location.path fora do resumo do AngularJS.

Tente fazer isso no scope.$apply(function() { $location.path("/route"); }); da diretiva: scope.$apply(function() { $location.path("/route"); });

Não esqueça de injetar $location no controlador.

Supondo que você não esteja usando o roteamento html5, tente $location.path("route") . Isso redirectá seu navegador para #/route que pode ser o que você deseja.

Se você precisar redirect para fora do aplicativo angular, use $window.location . Esse foi o meu caso; espero que alguém ache útil.

Verifique seu método de roteamento:

se o seu estado de roteamento é assim

  .state('app.register', { url: '/register', views: { 'menuContent': { templateUrl: 'templates/register.html', } } }) 

então você deve usar

 $location.path("/app/register"); 

É difícil dizer sem saber seu código. Meu melhor palpite é que o evento onchange não está sendo acionado quando você altera seu valor de checkbox de texto do código JavaScript.

Existem duas maneiras para isso funcionar; a primeira é chamar a onchange por si mesmo e a segunda é esperar que a checkbox de texto perca o foco.

Verifique esta questão ; mesma questão, estrutura diferente.