取代角度深度观察者

时间:2015-02-27 21:01:28

标签: javascript angularjs

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

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

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

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

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

除了深度观看之外,还有什么我可以尝试以更好的表现来实现我想要的东西吗?如果有人有想法或遇到类似问题,请帮忙。感谢。

1 个答案:

答案 0 :(得分:1)

  

我尝试使用单独的函数getKeys()来获取所有键和   看那个功能

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