2012-08-10 215 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