¡Esta es una revisión vieja del documento!
La directiva ng-click
permite ejecutar código JavaScript cuando se pincha sobre el elemento.
<tag ng-click="expresion_a_ejecutar" ></tag>
Cuando se pulse sobre el elemento se ejecutará la expresión indicada en la directiva ng-click
. La epresión se jecutan en el conteto del $scope
del controlador.
¿Porque necesitamos esta directiva si hace lo mismo que onclick
?
Debemos usar la directiva ng-click
en vez de onclick
porque ng-click
ejecuta código asociado al $scope
de nuestro controlador y por lo tanto tendremos acceso a las funciones de angular, mientras que con onclick
no lo tendríamos.
Observa este código HTML:
<body ng-app="MiApp" ng-controller="MiPageController"> A:<input type="number" ng-model="a"><br /> B:<input type="number" ng-model="b"><br /> <button ng-click="sumar()">Sumar</button><br /> Resultado:<input type="number" ng-model="resultado"><br /> </body>
Los inputs vienen ligados a las variables a y b del modelo (líneas 2 y 3). En la línea 4 se indica mediante esta directiva que se ejecute una función sumar()
definida en el $scope
. Esta función alterará el valor de la variable resultado
, lo que producirá a su vez que aparezca la suma en la línea 5.
Por tanto, al pulsar sobre el botón se ejecutará la función sumar()
definida en el $scope
y se mostrará el resultado. El modelo quedaría de esta forma:
function MiPageController($scope) { $scope.a=3; $scope.b=7; $scope.resultado=0; $scope.sumar=function() { $scope.resultado=$scope.a+$scope.b; } }
Demo