2017-05-11 23 views
-1

parentの要素のユーザclickが存在する場合、parentコントローラからchildコントローラにデータを渡したいとします。角度2 - あるコントローラから別のコントローラにデータを渡す

例:

<div (click)="PassDataToChild(orderNo)"></div> 

.TS

PassDataToChild(orderNo){ 
//Got the orderNo 
//How to send it to the child component, and let the child read it? 
} 
+1

の下に装着されています。ここにデザイン問題があるように思えます。すべてのコンポーネントは、Single Responsibility Principalを適用する必要があります。 –

+0

子コンポーネントはどのように見えますか?あなたは通常、子供に渡すための関数を必要としません、ちょうど子供が親の 'ng-model'に合致するプロパティを受け入れていることを確認してください.... – Claies

+0

@Claies @Jamie Rよく私は渡したいコンポーネントAからBへの情報の一部ですが、私はAngular2に基づいていることを簡単に知っている 'Ionic 2 'についてこれを行っています。しかし、私はAngularでそれを行う方法を理解できません! –

答えて

-1

あなたは親から子へデータを渡すために@Input()デコレータを使用することができます。

コードは、子が親コンポーネントについて何も知らないはず

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

@Component({ 
    selector: 'child-comp', 
    template: '<div>{{orderNo}}</div>' 
}) 

export class Child { 
    @Input() orderNo: string; 
} 



import {Component} from '@angular/core'; 

@Component({ 
    selector: 'parent-comp', 
    template: '<div (click)="PassDataToChild()"></div> <child-comp [orderNo]="orderNo"></child-comp>' 
}) 

export class Parent { 
    orderNo: string; 

    PassDataToChild() { 
     this.orderNo = 'Dummy Order'; 
    } 
} 
+0

なぜこれが落とされたのか分かりませんが、それは私にとって有効な答えのように見えます... – Claies

+0

ええ、私はあなたに同意します。共通かつ有効な質問。 –

関連する問題