2016-08-05 7 views
0

私のゴールは、コンポーネントAがアクションであったときにコンポーネントBのアクションを実行します。もちろん、コンポーネントAはイベントを送出し、これはコンポーネントBのために入力されます。動作しますが、すべてではありません。ユーザーがコンポーネントから一つの要素を削除]をクリックし角2RC4セッター(または変化を検出)

http://plnkr.co/edit/A3cE4M

ルックが除去され、イベントが発しています。コンポーネントBでは、同じリストを表示します(それは動作します)。しかし、コンポーネントJaroFoo_counterの中で使用関数セットリストが増分する必要がある場合もあります。初期化と最初の削除の後にのみインクリメントされます。

なぜわからないのですか? _listが変更されるたびに、どのようにこの増分を強制的に増やすことができますか?

ご協力いただきありがとうございます。

+0

の記事をお読みください[、最小完全、かつ検証例を作成する方法](http://stackoverflow.com/help/mcve)。 –

答えて

0

これは予想される動作です。出力は同じ配列を何度も出す。最初に変更されたものとして認識されます(nullから配列へ)。その後、同じアレイが再び放射されると、変化検出は変化としてそれを執行せず、更新が起こっていないので、設定器が呼び出されません。

あなたは

this._list = this._list.slice(); 

を使用して、各変更後の配列のコピーを作成した場合slice()は、新しい配列のインスタンスを作成するため、各変更が認識されています。

Plunker example

+0

ありがとうございます。しかし、私はどのようにしてセッターで、dirrerent配列の操作や異なるタイプで作業すべきですか? オブジェクトhttp://plnkr.co/edit/A3cE4Mにコードを再ビルドしましたが、今は同じです。オブジェクトのプロパティはチェンジ・タイプですが、セッター関数は使用しません。私は同じことがブール値または文字列/数字であることを恐れる。 – jaroApp

+0

オブジェクトは配列と同じですが、string、number、booleanなどのプリミティブ値の変更は常に認識されます。 –

+0

オブジェクトの変更後、何を検出する必要がありますか?またはarray.pushの後。 'this_list = this_list'はもちろん動作しません。 私にとっては明らかではありません。おそらくそれぞれの行動のために私は別の何かをするべきです。 – jaroApp

関連する問題