nombre mtg medusa framework español cnidaria aurelia

mtg - ¿Cómo puedo redireccionar a otro modelo de vista en Aurelia JS?



aurelia nombre (4)

Información breve relacionada: el problema de denominación con "enrutador" es algo que estamos rastreando aquí: https://github.com/aurelia/router/issues/34 Si está leyendo esta respuesta más adelante, y este problema se ha cerrado, entonces debería poder nombrar de manera segura el "enrutador" de su propiedad si así lo desea.

Estoy escribiendo una aplicación usando Aurelia JS . ¿Cómo puedo redireccionar a otra URL? ¿Hay alguna manera de hacerlo sin crear un nuevo paso de canalización de navegación ?

Gracias


Solo pensé en actualizar un poco la excelente respuesta de @Daniel Camarda. A partir de febrero de 2016, puede usar el decorador de inject de Aurelia. Además, el problema de nomenclatura del router se ha resuelto.

import {inject} from ''aurelia-framework''; import {Router} from ''aurelia-router''; @inject(Router) export class MyVM { constructor(router){ this.router = router; } someMethod(){ this.router.navigate("myroute"); } }


para hacerlo, inyecte el enrutador en ViewModel y use el método navigate(route)

Aquí hay un ejemplo:

import {Router} from ''aurelia-router''; export class MyVM { static inject() { return [Router]; } constructor(router){ this.router = router; } someMethod(){ this.router.navigate("myroute"); } }


Tal vez un caso de uso ligeramente diferente, pero publicado ya que es muy similar: al ingresar a una vista, en función de, por ejemplo, parámetros, deseo redireccionar a una vista diferente. Esto debe suceder en activate() o canActivate() .

En este caso , tanto navigate () como navigateToRoute () sugeridos anteriormente no funcionan.

Sin embargo, lo que funciona es return new Redirect(''....'') donde Redirect se importa desde aurelia-router, así:

canActivate(param) { if (param.id == null) return new Redirect(''/viewWhichDoesntNeedParam'') }