0

这是一个奇怪的行为,我希望你帮我检查一下:http: //jsfiddle.net/m3Z8r/2/

我很好奇为什么 Angular 调用symbolsLength()函数的次数比我预期的要多:

  1. 从第一次被调用两次(预计只被调用一次
  2. 当从template1to切换时template2它会再次触发(但没有明显的需要)

如果将 initial 设置templateName"template2"symbolsLength()则不会调用函数,这很好。

拜托,有人可以解释一下这里发生了什么吗?

PS我知道函数中没有必要,symbolsLength()因为我们可以写{{ symbols.length }},但是让我们假设这个函数做了一些非常重要的事情,例如联系服务。

4

1 回答 1

1

1.从第一次调用两次(预计只调用一次)

我单步执行了代码,发现这是因为为任何绑定创建的每个监视函数都包含最后一个值属性,并且在第一阶段,最后一个值与将脏标志设置为 true 的表达式值不同,从而触发一个新的经过。

2.当从模板1切换到模板2时,它会再次触发(但没有明显的需要)

包含新模板后,范围值没有改变并不重要,因此创建了新手表,因此重复步骤 1.

于 2013-02-01T17:26:33.467 回答