2016-05-16 9 views
8

角度2のボタンをクリックすると簡単なリダイレクトを作成する方法は?すでに試してみました:角度2のリダイレクト(クリック時)

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']); 
    } 

} 

答えて

20

あなたはAngular2のイベントのサポートを活用できます。

@Component({ 
    selector: 'loginForm', 
    template: ` 
    <div (click)="redirect()">Redirect</div> 
    `, 
    providers: [ROUTER_PROVIDERS] 
}) 
export class LoginComponent implements OnInit { 
    constructor(private router: Router) { } 

    redirect() { 
    this.router.navigate(['./SomewhereElse']); 
    } 
} 
+0

ボタンタグにrouterLinkを試してみてくださいルーターをクリックします。私は例外があります:エラー:キャッチされていない(約束しています):デフォルト出口を見つけることができません – TeodorKolev

+1

'SomewhereElse'を含むルートを定義するテンプレートの内容を提供できますか?あなたはそれに 'router-outlet'を持っているべきです... –

+0

はい私はそれを持っています。 app.component.ts内にあります。 @Component({ セレクタ: '私のアプリ' テンプレート: '

<ルータ出口> '、 ディレクティブ:[ROUTER_DIRECTIVES] }) – TeodorKolev

9

は、私が使用routerLinkディレクティブ&が置か言うだろうこと(アンカー)タグaオーバー

<a [routerLink]="['./SomewhereElse']">Redirect</a> 

また、 ROUTER_PROVIDERSproviders & incluから削除する必要がありますそれをブートストラップの依存関係に入れてから、ディレクティブをHTMLの routerLinkディレクティブに使用するように、コンポーネントのディレクティブオプションに ROUTER_DIRECTIVESを追加してください。 メインアプリケーションモジュールにRouterModuleの経路が挿入されていることを確認してください。

+0

作業コードを表示できますか? – TeodorKolev

+0

@TeodorKolev [this plunkr](http://plnkr.co/edit/PMkIbCWJAAlxLBYgDcTG?p=preview)を見てください。「routerLink」を使用して作成されたリンクがたくさんあるangular.ioから取り出しました。 –

+0

誰にでもこの解決策が働いていますか? ? –

10

私はなるだろうそれよりダイナミックな使用方法が

インポート角度ルータ

import { Router } from '@angular/router'; 

ページ名パラメータを持つメソッドを作成し、クリックイベント

<div (click)="redirect(my-page)">My page</div> 

でボタンを作成します。パラメータ

redirect(pagename: string) { 
    this.router.navigate(['/'+pagename]); 
} 

正しいページ

1

へのルートが機能していない

<button type="button" [routerLink]="['/edit']">Edit</button> 

More Info

+0

ベストアンサー!!! –

関連する問題