2016-03-31 4 views
3

私はIterableDiffersを完全に理解しています。私は時々、IterableDiffersのサンプルコードがローカルコンポーネントの変更検出器を渡されているのをなぜ知っているのだろうと思います。なぜなら、それがなくても動作するように見える理由は不思議です。Angular2では、IterableDiffersを使用すると、なぜchangeDetectorが渡されますか?

のように:

set ngBookRepeatOf(items) { 
    this.items = items; 
    if (this.items && !this.differ) { 
     this.differ = this.differs.find(items).create(this.changeDetector); 
    } 
} 

だけヌルを渡されると比べて。

+2

.create 'にパラメータを()'親が異なっています。 [IterableDiffers](https://angular.io/docs/ts/latest/api/core/IterableDiffers-class.html)を参照してください。 どのような影響があるかはわかりません。 –

答えて

2

ChangeDetectorRefパラメータがDefaultIterableDifferFactoryコンストラクタで使用されていないようです。 メソッドによってデフォルトで返されるIterableDifferFactoryの既定の実装です。

ですから、

は、ソースコードを参照してください...変化検出器またはnullを提供することができます。

+0

offtopic:ユニットテストでDefaultIterableDifferFactoryを使用するにはどうすればよいですか? http://stackoverflow.com/questions/43827551/how-to-inject-iterablediffers-service-into-a-unit-test – Rolando

関連する問題