Подтвердить что ты не робот

Перенаправление внутри компонента Angular 2

У меня есть простой метод, который в конце я хочу перенаправить на другой компонент:

export class AddDisplay{
  display: any;

  addPairTo(name: string, pairTo: string){
    this.display = {};
    this.display.name = name;
    this.display.pairTo = pairTo;

  }
}

Что я хочу сделать, это в конце метода перенаправить на другой компонент:

export class AddDisplay{
  display: any;

  addPairTo(name: string, pairTo: string){
    this.display = {};
    this.display.name = name;
    this.display.pairTo = pairTo;

    this.redirectTo('foo');
  }
}

Как достичь этого в Angular 2?

4b9b3361

Ответ 1

сначала настроить маршрутизацию

import {RouteConfig, Router, ROUTER_DIRECTIVES} from 'angular2/router';

и

@RouteConfig([
  { path: '/addDisplay', component: AddDisplay, as: 'addDisplay' },
  { path: '/<secondComponent>', component: '<secondComponentName>', as: 'secondComponentAs' },
])

затем в вашем компоненте импортируйте, а затем введите Router

import {Router} from 'angular2/router'

export class AddDisplay {
  constructor(private router: Router)
}

последнее, что вам нужно сделать, это позвонить

this.router.navigateByUrl('<pathDefinedInRouteConfig>');

или

this.router.navigate(['<aliasInRouteConfig>']);

Ответ 2

Ответ @kit в порядке, но не забудьте добавить ROUTER_PROVIDERS к поставщикам в компоненте. Затем вы можете перенаправить на другую страницу в методе 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']);
    }

}