Javascript 更换角形深度观察器

Javascript 更换角形深度观察器,javascript,angularjs,Javascript,Angularjs,我有一个名为fulldata的数据对象,它是一个对象数组 fulldata = [ {'key': 'abc', values: {.....},....}, {'key': 'efg', values: {.....},....}, {'key': 'hij', values: {.....},....}, .....] 该数据用于使用D3显示图表,对象的键表示图表

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

    fulldata = [
               {'key': 'abc', values: {.....},....},
               {'key': 'efg', values: {.....},....},
               {'key': 'hij', values: {.....},....},
               .....]
该数据用于使用D3显示图表,对象的键表示图表的图例。每次用户输入图表时,对象都会添加到fulldata中。现在,如果对象的values属性发生更改(由于各种用户操作),我将不得不相应地重新渲染图表,但如果只有键发生更改,我只需要更新图例

我尝试深入观察整个fulldata,如果根据条件更改了键,则只更改图例。它工作正常,但应用程序非常慢,因为values属性是一个非常庞大的数据集

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

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

我尝试创建一个单独的函数getKeys()来获取所有的键和 注意那个功能


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

Ah!应该是这样!谢谢!:)