javascript - 在 angularjs 中,为什么 ng-click 元素也会触发元素属性中的其他方法调用?

标签 javascript 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. 在样式属性中 - 这会计算顶部偏移量。
  2. ng-click= 我的函数在单击元素时执行操作。

当我单击该元素时 - mar(i) 与 ng-click 函数一起被调用。

我只是想了解为什么会发生这种情况。我有一个 plunk here您可以尝试一下。

最佳答案

这是因为您绑定(bind)到一个方法,您说的是 {{mar(i)}} .. 这意味着每次都有 $digest,例如在 ng 之后-click 被触发,必须评估该方法以便更新 View 。

关于javascript - 在 angularjs 中,为什么 ng-click 元素也会触发元素属性中的其他方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15047544/

相关文章:

javascript - 用于保存所选选择的 Angular 按钮

javascript - XMLHttpRequest 无法加载 https ://accounts. google.com/o/oauth2/token,Angularjs

javascript - React Router v4 - 使用 <Link/> 传递状态

javascript - constructor.name 上 ngSwitch 的替代方案?

javascript - 通过路线更新 View 时的 ng-animate

javascript - 如何与多个用户一起运行 Protractor 套件

javascript - 复选框的屏蔽标签 - 正确的方法?

javascript - google analytics - 将事件/标签作为对象而不是字符串发送

javascript - 使用单段代码进行条件验证 - AngularJS

javascript - 在 AngularJS 中使用 $resources 时如何保留本地 UI 状态