Angular ng在Safari与Chrome中使用trackBy进行更改检测

时间:2017-04-10 13:51:20

标签: javascript angular safari

我有一个与firebase连接的应用程序,只要发生任何更改,它就会获取整个对象。

假设我有一个像这样的对象:

{
    count: 0,
    media: [{
      src: 'http://placehold.it/350x150'
    }, {
      src: 'http://placehold.it/350x250'
    }]
  };

每当计数增加时,我从后端获得具有相同src值的整个对象。 以下是数据与视图绑定时会发生什么:

  • Chrome:由于图片相同src,因此图片无法刷新。 (预期的行为)
  • Safari:每次分配新对象时都会重新加载图像。

我也尝试使用trackBy: media?.src,但得到的结果相同。

这是Angular的问题trackBy还是Safari的工作方式?

选中plunker

1 个答案:

答案 0 :(得分:0)

此处的问题是trackBy: Object?.property已弃用,使用跟踪功能trackBy: trackByFn就像魅力一样。

虽然我认为Chrome比Safari更优雅地处理DOM更改。