Estoy tratando de redirigir a otra ruta usando:
$location.path("/route");
Pero por alguna razón no funciona. Hice un widget de autocompletar usando jQuery-UI y estoy llamando a una función desde el alcance una vez que el usuario selecciona una opción. Lo depuré 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 descubierto cómo solucionarlo. solía
window.location = "#/route";
y funciona pero quiero usar la path()
función.
¿Alguien tiene alguna idea de por qué está sucediendo esto?
No olvide inyectar
$location
en el controlador.fuente
Suponiendo que no está utilizando el enrutamiento html5, intente
$location.path("route")
. Esto redirigirá su navegador a lo#/route
que podría ser lo que desea.fuente
Si necesita redirigir fuera de su aplicación angular, use
$window.location
. Ese fue mi caso; con suerte, alguien lo encontrará útil.fuente
Verifique su 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");
fuente
Es difícil de decir sin conocer su código. Mi mejor suposición es que el
onchange
evento no se activa cuando cambia el valor del cuadro de texto del código JavaScript.Hay dos formas de que esto funcione; la primera es llamar
onchange
usted mismo y la segunda es esperar a que el cuadro de texto pierda el foco.Marque esta pregunta ; mismo tema, marco diferente.
fuente