2012-08-10 9 views

Odpowiedz

66

ng-click przechowuje wyrażenia kątowe. Wyrażenia kątowe są oceniane w kontekście Angula scope, który jest powiązany z elementem mającym atrybut ng-click lub przodkiem tego elementu.

Kątowy język wyrażeń nie zawiera instrukcji kontroli przepływu i nie może zadeklarować zmiennych ani zdefiniować funkcji. Te ograniczenia oznaczają, że szablony mogą tylko uzyskiwać dostęp do zmiennych i uruchamiać funkcje udostępniane przez kontroler lub dyrektywę.

88

Kątowa nie zmienia znaczenia atrybutu onclick; dodaje równoległy atrybut ng-click, aby pobrać Angular expression. onclick pobiera zwykły stary kod JavaScript, nawet jeśli używasz Angular.

Praktycznie rzecz biorąc, załóżmy, że to, co robisz w module obsługi kliknięć, zmienia niektóre zmienne w zakresie kątowym lub wywołuje funkcję w zakresie kątowym, który zmienia niektóre zmienne. Aby to zrobić z kodu JavaScript (jak to, co można umieścić w onclick) wymaga kilka kroków

  • uzyskać odwołanie do zakresu
  • przypisać zmiennej lub wywołać funkcję
  • połączenia scope.$apply, tak aby coś oglądania aktualizacje zmiennych, które zostały zmienione zostanie powiadomiony

ta wygląda następująco:

<a onclick="var $scope = angular.element(event.target).scope(); $scope.yourVar = 42; $scope.$apply()">Go</a> 

iz ng-click i kątowym wypowiedzi dla zadania, prawie wszystko jest niejawna:

<a ng-click="yourVar = 42">Go</a> 
+0

ta powinna być odpowiedź – alaboudi