Angular 2 - Cómo navegar a otra ruta usando this.router.parent.navigate('/about')
.
No parece funcionar. Lo intenté location.go("/about");
porque eso no funcionó.
Básicamente, una vez que un usuario ha iniciado sesión, quiero redirigirlo a otra página.
Aquí está mi código a continuación:
import {Component} from 'angular2/angular2';
import {CORE_DIRECTIVES, FORM_DIRECTIVES} from 'angular2/angular2';
import {Router} from 'angular2/router';
import {AuthService} from '../../authService';
//Model
class User {
constructor(public email: string, public password: string) {}
}
@Component({
templateUrl:'src/app/components/todo/todo.html',
directives: [CORE_DIRECTIVES, FORM_DIRECTIVES]
})
export class Todo {
model = new User('[email protected]', 'Password');
authService:AuthService;
router: Router;
constructor(_router: Router, _authService: AuthService){
this.authService = _authService;
this.router = _router;
}
onLogin = () => {
this.authService.logUserIn(this.model).then((success) => {
//This is where its broke - below:
this.router.parent.navigate('/about');
});
}
}
angular
typescript
angular2-routing
AngularM
fuente
fuente
/
de sus caminos, ya que requiere isntRespuestas:
Ruta de ruta absoluta
Hay 2 métodos para la navegación,
.navigate()
y.navigateByUrl()
Puede usar el método
.navigateByUrl()
para el enrutamiento absoluto de la ruta:Pones la ruta absoluta a la URL del componente al que deseas navegar.
Nota: Siempre especifique la ruta absoluta completa cuando llame al
navigateByUrl
método del enrutador . Los caminos absolutos deben comenzar con un líder/
Enrutamiento de ruta relativa
Si desea utilizar el enrutamiento de ruta relativa, utilice el
.navigate()
métodoNOTA: No es intuitivo cómo funciona el enrutamiento, especialmente las rutas principales, secundarias y secundarias:
O si solo necesita navegar dentro de la ruta de ruta actual, pero a un parámetro de ruta diferente:
Conjunto de parámetros de enlace
Una matriz de parámetros de enlace contiene los siguientes ingredientes para la navegación del enrutador:
['/hero']
['/hero', hero.id]
o['/hero', { id: hero.id, foo: baa }]
Sintaxis tipo directorio
El enrutador admite una sintaxis similar a un directorio en una lista de parámetros de enlace para ayudar a guiar la búsqueda del nombre de ruta:
./
o ninguna barra inclinada es relativa al nivel actual.../
para subir un nivel en la ruta de la ruta.Puede combinar la sintaxis de navegación relativa con una ruta de antepasado. Si debe navegar a una ruta entre hermanos, puede usar la
../<sibling>
convención para subir un nivel y luego subir y bajar la ruta de la ruta entre hermanos.Notas importantes sobre la relativa nagivación
Para navegar por una ruta relativa con el
Router.navigate
método, debe proporcionar elActivatedRoute
para dar al enrutador conocimiento de dónde se encuentra en el árbol de ruta actual.Después de la matriz de parámetros de enlace, agregue un objeto con una
relativeTo
propiedad establecida enActivatedRoute
. Luego, el enrutador calcula la URL de destino en función de la ubicación de la ruta activa.De la documentación oficial del enrutador angular
fuente
{ path: 'home', component: Home, children: homeRoutes }
entonces desea proporcionar eso al método de enrutador:this.router.navigate(['home/address-search'])
Othis.router.navigateByUrl(/'home/address-search')
this.router= Router;
puede confundir a algunos lectores, en este caso es una mención a una inyección de dependencia de Router, que debería hacer usando este código en su lugarconstructor( private router: Router )
Deberías usar
Además de especificar la ruta de la ruta, también puede especificar el nombre de su ruta:
fuente
this._router.navigate(['/some-route']);
También se puede usar sin
parent
decir definición de enrutador como:
entonces puede navegar en
name
lugar depath
Actualizado para V2.3.0
En Enrutamiento desde v2.0, la propiedad de nombre ya no existe. ruta definida sin nombre de propiedad. así que deberías usar la ruta en lugar del nombre .
this.router.navigate(['/path'])
y sin barra diagonal para la ruta, así que úsala enpath: 'about'
lugar depath: '/about'
definición de enrutador como:
entonces puede navegar por
path
fuente
name
está en desuso en el tipo de ruta en Angular 2.0.v2.3.0
deldata
deberá ser utilizado en lugar dename
. Para más detalles -> angular.io/docs/ts/latest/guide/router.htmlfuente
Personalmente, descubrí que, dado que mantenemos una
ngRoutes
colección (larga historia), disfruto más de:De hecho, lo uso como parte de una de nuestras preguntas de la entrevista. De esta manera, puedo obtener una lectura casi instantánea de quién se ha estado desarrollando para siempre al ver quién se contrae cuando se encuentran
GOTO(1)
con la redirección de la página de inicio.fuente