2012-08-10 216 views

回答

66

ng-click保存一个角度表达式。 Angular表达式在角度为scope的上下文中进行评估,该角色绑定到具有ng-click属性的元素或该元素的祖先。

Angular表达式语言不包含流控制语句,不能声明变量或定义函数。这些限制意味着模板只能访问变量并运行控制器或指令提供的功能。

88

Angular不改变onclick属性的含义;它会添加并行ng-click属性以采取Angular expression。即使在使用Angular时,onclick也会传统的JavaScript代码。

实际上,假设你在点击处理程序中正在做的是改变Angular范围中的某些变量,或者在改变某些变量的Angular范围中调用一个函数。 要做到这一点从JavaScript代码(像什么,你会放在onclick)需要一堆步骤

  • 到达范围的参考
  • 分配变量或调用函数
  • 呼叫scope.$apply使什么看更新的变量,你改变了得到通知

这看起来像:

<a onclick="var $scope = angular.element(event.target).scope(); $scope.yourVar = 42; $scope.$apply()">Go</a> 

ng-click和分配的角度表达,几乎所有的即隐:

<a ng-click="yourVar = 42">Go</a> 
+0

这应该是答案 – alaboudi 2017-09-20 17:10:23