当前位置:  开发笔记 > 编程语言 > 正文

Angular2-可迭代差异未检测到更改

如何解决《Angular2-可迭代差异未检测到更改》经验,为你挑选了1个好方法。

我正在使用Angular2的可迭代Differs来检测我的数据更改。然后,我想重新加载我的视图。但是different.diff总是返回“ null”,我也不知道为什么。

constructor(differs: IterableDiffers) {
    this.differ = differs.find([]).create(null);
}

@Input() data: any;

ngDoCheck() {
    var changes = this.differ.diff(this.data.datasets);
    if (changes && this.initialized) {
       //doreload
    }

编辑:

this.pingService.pingStream.subscribe(ping => {
                  this.ping = ping;
                  console.log(this.ping);
                  NTWDATA.datasets[0].data.shift();
                  NTWDATA.datasets[0].data.push(this.ping);

PingService每5秒返回一个数字(对服务器进行ping操作)。移位/推送thingy工作正常,数据在那里。只是没有被发现。NTWDATA:

{
    labels: ["","","","","","",""],
    datasets: [
        {
            label: 'Server Response Time in ms',
            data: [65, 59, 80, 81, 56, 55, 40],
            fill: false,
            borderColor: '#FF0303'
        }
    ]
}

Thierry Temp.. 5

这取决于您要检测的内容。使用IterableDiffers该类,您将“仅”检测是否:

元素添加到您的数组中

元素从数组中删除

但是它不会检测是否在数组的元素内完成了更新。

这个问题可能会让您感兴趣:

检测Angular2中数组内部对象的变化

有关用例,请参见以下插件:https ://plnkr.co/edit/wn6mTEcvrW2vh1ko5Ji5?p=preview 。



1> Thierry Temp..:

这取决于您要检测的内容。使用IterableDiffers该类,您将“仅”检测是否:

元素添加到您的数组中

元素从数组中删除

但是它不会检测是否在数组的元素内完成了更新。

这个问题可能会让您感兴趣:

检测Angular2中数组内部对象的变化

有关用例,请参见以下插件:https ://plnkr.co/edit/wn6mTEcvrW2vh1ko5Ji5?p=preview 。

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有