Redirigir usando AngularJS

Estoy intentando redirigir a otra ruta usando:

$location.path("/route"); 

Pero por alguna razón, no está funcionando. Hice un widget de autocompletar usando jQuery-UI y estoy llamando a una función desde el scope una vez que el usuario selecciona una opción. Lo depure y entra en la función, pero nunca se redirige a la otra ruta. Solo cambia la ruta cuando presiono una tecla.

Creo que es un poco extraño, pero no he resuelto cómo resolver esto. solía

 window.location = "#/route"; 

y funciona pero quiero usar la función path() .

¿Alguien tiene alguna idea de por qué está pasando esto?

Con un ejemplo del código que no funciona, será fácil responder a esta pregunta, pero con esta información lo mejor que puedo pensar es que está llamando al $ location.path fuera del resumen de AngularJS.

Intente hacer esto en el scope.$apply(function() { $location.path("/route"); }); la directiva scope.$apply(function() { $location.path("/route"); });

No te olvides de inyectar $location en el controlador.

Suponiendo que no está utilizando el enrutamiento html5, pruebe $location.path("route") . Esto redirigirá tu navegador a #/route que podría ser lo que deseas.

Si necesita redireccionar fuera de su aplicación angular use $window.location . Ese era mi caso; con suerte alguien lo encontrará útil.

Verifica tu método de enrutamiento:

si su estado de enrutamiento es así

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

entonces deberías usar

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

Es difícil de decir sin conocer tu código. Mi mejor opción es que el evento onchange no se active cuando cambias el valor del cuadro de texto del código JavaScript.

Hay dos formas de que esto funcione; el primero es llamar al cambio por ti mismo, y el segundo es esperar a que el cuadro de texto pierda el foco.

Verifique esta pregunta ; mismo problema, marco diferente.