Angular приложения используют атрибут ng-click(), а не событие onclick.
Почему это?
Ответ 1
ng-click содержит выражение angular. Выражения angular оцениваются в контексте angular scope, который связан с элементом, имеющим атрибут ng-click или предком этого элемента.
Язык выражения angular не содержит операторов управления потоками и не может объявлять переменные или определять функции. Эти ограничения означают, что шаблоны могут обращаться только к переменным и запускать функции, предоставляемые контроллером или директивой.
Ответ 2
Angular не изменяет значение атрибута onclick; он добавляет параллельный атрибут ng-click для выражения Angular. onclick использует простой старый код JavaScript, даже если вы используете Angular.
Практически говоря, предположите, что вы делаете в обработчике кликов, меняете некоторые переменные в области Angular или вызываете функцию в области Angular, которая меняет некоторые переменные.
Для этого из кода JavaScript (например, то, что вы бы поставили в onclick) требуется куча шагов
получить ссылку на область
назначить переменную или вызвать функцию
вызов scope.$apply, чтобы все уведомления о изменениях, которые вы изменили, получили уведомление