2013-02-24 60 views
1

我正在学习angularJS,并试图理解为什么只有一个实际调用时会调用多个方法。在这一行:在angularjs中,为什么单击一个元素还会触发元素属性中的其他方法调用?

<li ng-repeat="i in names" style="position: relative; top:{{mar(i)}}px; z-index:{{i}}; background-color: orange;" ng-click="clicker(i, $index)">{{i + " " + $index}}</li> 

所以我在这行两个“来电”:

  1. 内style属性 - 这个计算顶偏。
  2. ng-click =我点击元素时的功能。

当我点击元素 - mar(i)被称为ALONG WITH ng-click函数。

我只是想明白为什么会发生这种情况。我有一个plunk here,你可以尝试。

回答

5

这是因为你绑定了一个方法,你说的是{{mar(i)}} ..这意味着每当有一个$摘要时,比如触发ng-click之后,该方法就必须被评估。该视图可以更新。

+1

这是正确的。 Angular始终重新评估一切,这就是它的工作原理。如果它不起作用,即如果JavaScript慢100倍,那么像Angular这样的东西根本就不会存在。 – jpsimons 2013-02-24 04:05:36

相关问题