Angular приложения используют атрибут ng-click(), а не событие onclick.
Почему это?
 Angular приложения используют атрибут ng-click(), а не событие onclick.
Почему это?
ng-click содержит выражение angular. Выражения angular оцениваются в контексте angular scope, который связан с элементом, имеющим атрибут ng-click или предком этого элемента.
Язык выражения angular не содержит операторов управления потоками и не может объявлять переменные или определять функции. Эти ограничения означают, что шаблоны могут обращаться только к переменным и запускать функции, предоставляемые контроллером или директивой.
 Angular не изменяет значение атрибута onclick; он добавляет параллельный атрибут ng-click для выражения Angular. onclick использует простой старый код JavaScript, даже если вы используете Angular.
Практически говоря, предположите, что вы делаете в обработчике кликов, меняете некоторые переменные в области 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>