Angular IterableDiffers-差异的意外行为检查

时间:2019-06-27 18:03:02

标签: javascript angular

我正在探索NgForOf指令的源代码,并注意到正在使用IterableDiffers。以下几行代码将演示我的问题:

constructor(private _differs: IterableDiffers) {
  }

  ngOnInit() {
    const arr = ['One', 'Two', 'Three'];
    let differ = this._differs.find(arr).create();

    let changes = differ.diff(arr);
        // DefaultIterableDiffer {length: 3, _linkedRecords: _DuplicateMap, _unlinkedRecords: null, _previousItHead: null, _itHead: IterableChangeRecord_, …}
    console.log('changes 1:', changes);

    changes = differ.diff(arr);
        // null
    console.log('changes 2:', changes);
  }

为什么第一个different.diff(arr)调用返回一个对象? 数组没有更改或修改,我希望第一个调用像第二个调用一样返回null。我想念什么?

0 个答案:

没有答案