2017-01-09 26 views
0

子でも親でもないコンポーネントから別のコンポーネントにデータを送信しようとしています。角2親子関係のないコンポーネント間でオブジェクトを送信

私は何を求めているかを示すためにPlunkerを作成しました。

次のコードが実行されたときに聞きたいものがあります。

fillSelectT(item){ 
    //populate Select to 
} 

次のコードはデータをリスンする必要があります。

listener(item){ 
    selectedItems.push(item); 
    } 

は、C#で、私が把握しようとしています何EventAggregatorにsimmularだろう。

答えて

2

:あなたは、2つのコンポーネント間のサービスを共有する項目を選択する場合、サービスからイベントを発行し、他の成分から放出されたイベントに耳を傾けなければなりません。 http://plnkr.co/edit/qJ8bh7wN9qQvKTLJOb0T?p=preview

:修正

@Injectable() 
class SelectionService { 
    selections = new Subject<any> 
    select(item) { 
    this.selections.next(item); 
    } 
} 

あなたplunkr、

0

私はあなたに基づいて完全な例を示しました。イベントを発生するselect-from成分を変更)

selectedItems: any[] = []; 

onSelectItem(item) { 
    this.selectedItems.push(item); 
} 

<select-from (onSelectItem)="onSelectItem($event)"></select-from> 
<select-to [selectedItems]="selectedItems"></select-to> 

2:

@Output() onSelectItem = new EventEmitter<any>(); 

fillSelectT(item){ 
     this.onSelectItem.emit(item); 
} 

1)両方の成分はAppComponentの子であり、それらを発射し、格納する変数とイベントを作成)select-toコンポーネントを呼び出し元のコンポーネントからリストを受け取るように変更します。

@Input() selectedItems:any = []; 

ここ修飾:documented hereとしてPlunker

関連する問題