Angular apps use the ng-click()
attribute rather than the the onclick
event.
Why is this?
Angular apps use the ng-click()
attribute rather than the the onclick
event.
Why is this?
Angular 不会改变onclick
属性的含义;它添加了 parallelng-click
属性以采用Angular 表达式。onclick
即使您使用 Angular,也可以使用普通的旧 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
Angular 表达式进行赋值,几乎所有这些都是隐式的:
<a ng-click="yourVar = 42">Go</a>
ng-click 包含一个角度表达式。Angular 表达式在 Angular范围的上下文中进行评估,该范围绑定到具有 ng-click 属性的元素或该元素的祖先。
Angular 表达式语言不包括流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行函数。