为什么我们需要 ng-click

Why do we need ng-click?

本文关键字:ng-click 我们 为什么      更新时间:2023-09-26

Angular 应用程序使用 ng-click() 属性而不是 onclick 事件。

这是为什么呢?

Angular

不会更改 onclick 属性的含义;它会添加并行ng-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 范围的上下文中计算,该范围绑定到具有 ng-click 属性或该元素的祖先的元素。

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