2017-02-20 10 views
-1

ngOnInit()関数のページにリダイレクトするようにコンポーネントを指示しようとしていますが、機能しません。私のコードは次のようになります。角2:component.tsをリダイレクト

constructor(private router: Router) {} 

ngOnInit() { 
    this.initForm(); 
} 

initForm(){ 
    this.router.navigateByUrl('ng/loan/loan'); 
} 

上記のコードは、コンポーネントが私の目的のパスに私をリダイレクトすることはありませんが、私は私のテンプレートファイルにボタンを追加する場合、それにそれがない(click)="initForm()"を与えます。私はここで何が欠けていますか?

+1

何 'this.router.navigateByUrl( '/ NG /ローン/融資')について;'? (スラッシュ付き)。より多くの情報を提供する必要があります。そうでなければ、誰でもサポートを提供することはできません(経路の外観、コードに含まれるコンポーネントなど...) –

+0

エラーメッセージは表示されません。おそらくこのようなものでしょう。this.router.navigate(['ng'、 'loan'、 'loan']); ' – Kyrsberg

+0

エラーメッセージは表示されません。 Everytingはうまくいきます、実際にはナビゲーションを引き起こさないでしょう。 @Kyrsberg私はthis.router.navigate(['ng'、 'loan'、 'loan'])も試みましたが、トリガーはしませんが、エラーメッセージも表示されません。それは、(クリック)イベントを持つボタンから関数を呼び出す場合にのみトリガされます。 –

答えて

0

だから、いくつかの研究をした後、私は望みの効果を達成する方法を見つけました。 this.router.navigateByUrlが約束であるため、ngOnInit()関数からthis.initForm()を呼び出す理由がルーティングをトリガーしなかったためです。私は約束をするために.then()を追加し、私が望むルートに移動するために再度それを伝えなければなりませんでした。

新しいinitForm()関数:

initForm(){ 
    this.router.navigateByUrl('ng/loan/loan').then(x => { 
    this.router.navigateByUrl('ng/loan/loan'); 
    }) 
} 
関連する問題