2017-06-30 16 views
1

おはよう、角度2 |ルーティングされたコンポーネントのプロパティバインディングを使用できません

ルーティングされたコンポーネントにプロパティをバインドする方法はありますか? @input()デコレータがルーティングされたコンポーネントで動作していないようです。

ありがとうございました

+0

here続きを読みますか?誰かが既に答えを出しましたが、コード – brijmcq

+0

を入力すれば、それはうまくいかないと思われます。 –

+0

ここで私の別の質問を参照することができます。私は何をしたいですか私はクラスのプロパティを子コンポーネントにバインドしたいです。 https://stackoverflow.com/questions/44817467/angular-2-i-cant-bind-property-from-another-class?noredirect=1#comment76615953_44817467 –

答えて

0

ルータのパラメータを使用してみてください。だから、あなたのルータの設定では、このようなコンポーネント( "MyComponent"と見なされます)へのルータのパスを持っています。

routes: Routes = [ { path: 'mycomponent/:myParam', component: MyComponent} ]

アンカータグのルータに実際の値をHTMLのように渡します。

<a [routerLink]="['/mycomponent', paramValue]"> Link to MyComponent </a>

またはあなたの親コンポーネントで

、プログラムでMyComponentのために移動します。

this.router.navigate(['/mycomponent', paramValue]);

そして、あなたのコンポーネント(MyComponentという)で、のparams観察可能を提供し、角度ルータからActivatedRouteをインポートし、ngOnInit方法でその観測可能に加入。だからあなたのMyComponentはこのように見えるはずです。

import { Component, OnInit, OnDestroy } from '@angular/core'; 
import { ActivatedRoute } from '@angular/router'; 


@Component({ 
    selector: 'my-selector', 
    template: '<div>My Component - Param Value {{myParamValue}}</div> ' 
}) 

export class MyComponent implements OnInit, OnDestroy{ 
myParamValue: any; 
private subscribe: any; 

constructor(private route: ActivatedRoute){} 

ngOnInit() { 
    this.subscribe= this.route.params.subscribe(params => { 
     this.myParamValue = params['myParam']; 
    }); 
    } 

ngOnDestroy() { 
    this.subscribe.unsubscribe(); 
    } 
} 

あなたのコードを共有することができ

+0

これはプロパティバインディングと同じですか?この例では、アクティブなルータのリンクにmyParamValueを送信していますか?現在のルートはどこですか? –

+0

プロパティのバインディングは、コンポーネントのプロパティにバインドする必要があるテンプレートプロパティの値がある場合に適用されます。コンポーネントに渡さなければならないデータがIDのようなものなら、このメソッドを使うことができます。それ以外の場合は、共通のサービスを使用して、これらのコンポーネント間でデータを共有します – HashanMadz

関連する問題