2017-04-17 21 views
0

ダミーのAngularアプリケーションでは、2つのコンポーネント:countertest01があります。あなたが見ることができる通りrepository file角度 - あるコンポーネントを別のコンポーネントに渡す

このGitHubリポジトリは完全に実用的な例を含んでいます。

この画像を確認してください。あなたがボタンをクリックすると

this image.

は:成功した8:「変更カウンタ値は、」それはにカウンタ番号を設定します。

しかし、私の質問はtest01メソッドの値を簡単な方法で変更するには、counterコンポーネントをtest01コンポーネントに渡すことができますか?よりあまりにも多くのコードなしで

test01_obj.counter = 8; 

:今

コンポーネントのロジック:あなたは私のような何かをしたいと思いますhere

を見ることができるようtest01はより困難です。

これに関するご意見はありますか?

答えて

0

間違った方法で問題に近づいています。

代わりに2つのコンポーネント間のモデル(カウント)を共有し、[間接]相互作用を実現するためにバインディングに頼ることをお勧めします。

すなわち:

export class ContainerComponent { 

    myCounterModel: CounterModel = { 
     count: 0 
    }; 
    ... 
} 

export class CounterComponent { 
    ... 
    @Input() 
    counter: CounterModel; 
} 

export class Test01Component { 
    ... 
    @Input() 
    counter: CounterModel; 
} 


    //ContainerComponent template 

<counter [(counter)]="myCounterModel"></counter> 
<hr /> 
<test01 [(counter)]="myCounterModel" [resetValue]="8"></test01> 

理にかなっていますか?

+0

ここで、 'let model:CounterModel'を独立したファイルに宣言しますか?または既に存在するファイルのいくつかを削除しますか? – davidesp

+0

たとえば、コンテナコンポーネントでは、更新されたコードスニペットを確認してください –

関連する問題