2017-03-23 3 views
0

を経由してコンポーネントにオブジェクトを渡されます、私はここにリンクを持っている:親ページ上の子コンポーネントで- 私の親ページで入力

showPermissionsRates(item) { 
     this.currentEventPoolId = item; 
    } 

<a (click)="showPermissionsRates(5757);">Link</a> 

機能がそれを設定しますここに:

012:私が使用して私の子コンポーネントのTSファイルで

<app-event-pools-permissions-rates [eventPoolId]="currentEventPoolId "></app-event-pools-permissions-rates> 

そして、

inputs: ['eventPoolId'] 

しかし、子コンポーネントでどのように '5757'の値を取得できますか?アラートを使用するなど?

+0

それはあなたが求めているものを理解するのは難しいです。 'showPermissionRates()'は何をしますか?おそらく、あなたは試したことの[Plunker](https://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5?p=preview)の実例を作成することができますか? – Askanison4

+0

@ Askanison4私はちょうどそれを更新しました:) –

+0

要するに、私は子コンポーネントのTSファイルで使用される '5757'の値を渡したいと思います。 –

答えて

2

を使用して、子コンポーネントのコンストラクタで、それをリッスンする必要があり、あなたがクリックイベントで入力変数での値を設定していると思います)を子プロパティに追加します。

私は一緒に非常に基本的な例を示し、これを入れてきましたが、あなたの問題についてに行く方がなくて、あなたが必要なものを知るのは難しい: https://plnkr.co/edit/y9clOla1WrPFmhMJoz7o?p=preview

要旨はあなたの入力をマークする@Input()を使用することです子コンポーネント内に作成し、親のテンプレート内のそれらをマップします。

import {Component} from '@angular/core' 
 
import {BrowserModule} from '@angular/platform-browser' 
 

 
import { ChildComponent } from 'child.component.ts'; 
 

 
@Component({ 
 
    selector: 'my-app', 
 
    template: ` 
 
    <div> 
 
     <button (click)="changeProperty('ABC 123')">Click Me!</button> 
 
    
 
     <child-component [childProperty]="parentProperty"></child-component> 
 
    </div> 
 
    `, 
 
}) 
 
export class App { 
 
    public parentProperty: string = "parentProp"; 
 
    
 
    public changeProperty(newProperty: string) : void { 
 
    this.parentProperty = newProperty; 
 
    } 
 
}

その後、子供に:

import {Component, Input} from '@angular/core' 
 

 
@Component({ 
 
    selector: 'child-component', 
 
    template: ` 
 
    <div>Hello World: {{ childProperty }}</div> 
 
    `, 
 
}) 
 
export class ChildComponent { 
 
    
 
    @Input() 
 
    childProperty:string; 
 
    
 
    constructor() { 
 
    this.childProperty = 'childProp' 
 
    } 
 
}

+0

ほぼそこに、テンプレートではない子TSファイルの 'ABC 123'値を警告したいと思います。 –

+0

変更が発生したときに何らかのアクションを実行する必要があるか、またはボタンをクリックしてそれらを表示する必要がありますか? – Askanison4

+0

ボタンクリック: –

0

私は、あなたが(あなただけ@Inputを使用することができるはずngonchanges

ngOnChanges(changes: SimpleChanges) { 

      if(changes['eventpoolid'] && changes['eventpoolid'].currentValue) { 
// you get updated value here 
    } 
    } 
+0

そうだね。私は入力からその値をどのように引き出すのかはわかりません:['eventPoolId']。何か案は? –

+1

私は自分の答えを更新しました。これはあなたが探しているものではありませんか? – RemyaJ

+1

なぜ 'ngOnChanges'を使う必要がありますか?変更の検出は自動的に行われますか? – Askanison4

関連する問題