取代了棱角分明的深度观察者

replacing angular deep watcher

本文关键字:深度 深度观察 观察者 取代      更新时间:2024-06-21

我有一个名为fulldata的数据对象,它是一个对象数组。

    fulldata = [
               {'key': 'abc', values: {.....},....},
               {'key': 'efg', values: {.....},....},
               {'key': 'hij', values: {.....},....},
               .....]

该数据用于使用D3显示图表,并且对象的键表示图表的图例。每次用户输入图表时,对象都会添加到完整数据中。现在,如果对象的values属性发生变化(由于各种用户操作),我将不得不相应地重新呈现图表,但如果只有键发生变化,我只需要更新图例。

我试着深入观察整个完整数据,如果键是基于条件更改的,则只更改图例。它运行良好,但应用程序非常慢,因为values属性是一个非常庞大的数据集。

我试着制作一个单独的函数getKeys()来获取所有的键并观察该函数,但它给我带来了一个错误:"错误:达到10$digest()迭代。正在中止!"

我还有什么可以尝试通过比深度观看更好的表演来实现我想要的吗?如果有人有想法或遇到过类似的问题,请提供帮助。谢谢

我尝试制作一个单独的函数getKeys()来获取所有的键和观察的功能

这似乎是个好主意,但不要忘记将$watch的第三个参数设置为true,以防止无限循环。