2017-06-29 11 views
0

まず、これが正しい方法であれば、私が望むものを達成するかどうかはわかりません。 次のようなエクスポートバインディングをrouter.navigateに追加しようとしています)-method:角度ルータにパラメータを追加する.navigate

<call [caller]="caller"></call> 

問題は、私はディレクティブを使用しないということですが、代わりにルータを介して、それを住所:

acceptCall() { 
    this.router.navigate(["call"]); 
} 

どのように私は最初の例から結合同じ輸出を達成することができますacceptCall() - メソッド? は、私はすでに入力()変数を追加し、このようなqueryParamsでそれを試してみました:

@Input() caller: Caller; 
acceptCall(caller) { 
    this.router.navigate(["call"], {queryParams: caller}); 
} 

しかし、これは動作しません。あなたが持っている私のコメントに続いて

+0

ほぼ! try 'this.router.navigate([" call "、caller]);' – trichetriche

+0

私のために機能しません、私は自分のRouterModule.forRootを変更する必要がありますか?私は現在、{path: 'call'、component:CallComponent}のようになります。 – reveN

+0

'path: 'call /:caller'}'と 'this.route.params.subscribe((params: – trichetriche

答えて

2

1 -

{path: 'call/:caller', component: MyComponent } 

2あなたのルートを再定義 - で- 親コンポーネント

this.router.navigate(["call", caller]); 

3であなたのナビゲーションを変更子コンポーネント、パラメータを取得

import { ActivatedRoute } from '@angular/router'; 
// code until ... 
myParam: string; 
constructor(private route: ActivatedRoute) {} 
// code until ... 
ngOnInit() { 
    this.route.params.subscribe((params: Params) => this.myParam = params['caller']); 
} 
+0

mhh私が言ったようにすべてをやったことがありますが、ルータコンポーネントはコールコンポーネントではなく "home"コンポーネントに戻ります。私はメソッドを呼び出します – reveN

+1

'this.router.navigate([.. ../user '、id]、{relativeTo:this.route});'のような呼び出しを使用して、正しいURLにリダイレクトされることを確認しました。それを試してみることができますか? – trichetriche

+0

iveは模擬通話者を作成し、次のエラーが発生します。 エラー:いずれの経路にも一致しません。 URLセグメント: 'コール; ID = 1;名前=フロート%20Baggins;電話= 12345%2F678910;会社=%20Fellowship%20of%20the%20Ring' – reveN

関連する問題