J'ai une méthode simple qui à la fin je veux rediriger vers un autre composant:
export class AddDisplay{
display: any;
addPairTo(name: string, pairTo: string){
this.display = {};
this.display.name = name;
this.display.pairTo = pairTo;
}
}
Ce que je veux faire est à la fin de la méthode rediriger vers un autre composant:
export class AddDisplay{
display: any;
addPairTo(name: string, pairTo: string){
this.display = {};
this.display.name = name;
this.display.pairTo = pairTo;
this.redirectTo('foo');
}
}
Comment y parvenir en Angular 2?
d'abord configurer le routage
import {RouteConfig, Router, ROUTER_DIRECTIVES} from 'angular2/router';
et
@RouteConfig([
{ path: '/addDisplay', component: AddDisplay, as: 'addDisplay' },
{ path: '/<secondComponent>', component: '<secondComponentName>', as: 'secondComponentAs' },
])
puis dans votre composant d'importation, puis injecter le routeur
import {Router} from 'angular2/router'
export class AddDisplay {
constructor(private router: Router)
}
la dernière chose à faire est d'appeler
this.router.navigateByUrl('<pathDefinedInRouteConfig>');
ou
this.router.navigate(['<aliasInRouteConfig>']);
La réponse de @ kit est correcte, mais n'oubliez pas d'ajouter ROUTER_PROVIDERS
aux fournisseurs du composant. Ensuite, vous pouvez rediriger vers une autre page de la méthode ngOnInit
:
import {Component, OnInit} from 'angular2/core';
import {Router, ROUTER_PROVIDERS} from 'angular2/router'
@Component({
selector: 'loginForm',
templateUrl: 'login.html',
providers: [ROUTER_PROVIDERS]
})
export class LoginComponent implements OnInit {
constructor(private router: Router) { }
ngOnInit() {
this.router.navigate(['./SomewhereElse']);
}
}
Cela a fonctionné pour moi Angular cli 6.x:
import {Router} from '@angular/router';
constructor(private artistService: ArtistService, private router: Router) { }
selectRow(id: number): void{
this.router.navigate([`./artist-detail/${id}`]);
}