2016-10-01 33 views
0

こんにちは私は、2つのコンポーネントで2つのコンポーネント間でデータを渡すことについて質問します。 @Inputを使ってデータを渡す方法が不思議でした。誰かがデータを渡す必要があるという考えを持っていますか?コンポーネントから別のコンポーネントにデータを渡すコンポーネント2つのファイル

file1.ts 
import { Component } from "@angular/core"; 
@Component({ 
    selector: "search", 
    templateUrl: '<div>Hello{{testData}}</div>' 
}) 

export class File1Component{ 
public testData = "Hello"; 

} 

file2.ts 
import { Component } from "@angular/core"; 
@Component({ 
    selector: "profile", 
    templateUrl: '<div>Hello</div>' 
}) 

export class File2Component{ 


} 

答えて

0

あなたはserviceを共有したり、そのようにそれを扱う作成することができます。

file1.component.ts

import { Component } from "@angular/core"; 
@Component({ 
    selector: "search", 
    templateUrl: ' 
        <div>Hello{{testData}}</div>' 
}) 

export class File1Component{ 
public testData = "Hello"; 

getTestData(){ 
    return this.testData; 
} 

} 

file2.component.ts

import { Component, Input } from "@angular/core"; 
@Component({ 
    selector: "profile", 
    templateUrl: '<div>Hello</div>' 
}) 

export class File2Component{ 
    @Input() inputData: any; 

} 

app.component.ts

import { Component } from "@angular/core"; 
@Component({ 
    selector: "app", 
    templateUrl:'<search #varSearch></search> 
       <profile [inputData]="varSearch.getTestData()"></profile>' 
}) 

export class File2Component{ 


} 
+0

HTTPリクエストを作成せずにfile1のデータをfile2にファイルに変換しますか?タグを追加すると、テンプレートも取得されます。私はちょうどデータを渡す必要があります。 – Tony

+0

解決しましたか? – ulou

+0

いいえ私はgetData()メソッドの中でtheを取得していませんでしたが、メソッドから外にそれを印刷することができません。私は新しいスレッドを開いたhttp://stackoverflow.com/questions/39822057/angular2-passing-dataover-servicestwo-components/39822467#39822467 – Tony

0

この目的でservicesを使用できます。サービスは、コンストラクタ内のコンポーネントに渡すことができる、注入可能なシングルトンです。両方のコンポーネントはサービスを介して通信します。

あなたはplunkrとしてライブデモもあり

https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

公式Angular2ドキュメントにservicesに良いと精巧な紹介を見つけることができます。

関連する問題