まず第一に、これが正しい方法であるかどうか、私が望んでいることを達成するために確信がありません。以下のようなエクスポートバインディングをrouter.navigate()-methodに追加しようとしています:
<call [caller]="caller"></call>
問題は、ディレクティブを使用しないで、代わりにルーターを介して処理することです。
acceptCall() {
this.router.navigate(["call"]);
}
AcceptCall()メソッドの最初の例と同じエクスポートバインディングを実現するにはどうすればよいですか?私はすでにInput()変数を追加しており、次のようなqueryParamsでそれを試しました:
@Input() caller: Caller;
acceptCall(caller) {
this.router.navigate(["call"], {queryParams: caller});
}
しかし、これは機能しません。
私のコメントに従って、あなたは:
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']);
}