¡Esta es una revisión vieja del documento!
Hemos visto como indicando un mensaje en el $scope
podemos mostrarlo fácilmente en el HTML mediante {{ }}
. Pero la gracia de angular es que si modificamos el mensaje se actualiza automáticamente el HTML. Para poder cambiar el mensaje debemos incluir una nueva directiva 1) llamada ng-click
que permite ejecutar una función JavaScript al pulsar sobre un elemento HTML.
El ejemplo ahora quedaría así:
<!DOCTYPE html> <html ng-app="app"> <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script> <script src="script.js"></script> </head> <body ng-controller="PruebaController"> <h1>{{mensaje}}</h1> <button ng-click="cambiarMensaje()">Cambio</button> </body> </html>
ng-click
que permite especificar una función JavaScript que se ejecutará al pulsar sobre el elemento. El método a ejecutar es cambiarMensaje()
.
Desgraciadamente el método no puede ser una simple función JavaScript llamada cambiarMensaje
. Al igual que con las variables que deben estar en el $Scope
, la función cambiarMensaje
tambien deberá ser una función definida en el $scope
.
var app=angular.module("app",[]); function PruebaController($scope) { $scope.mensaje="Hola Mundo"; $scope.cambiarMensaje=function() { $scope.mensaje="Adios mundo cruel :-)"; } }
cambiarMensaje
cuyo valor es una función anónima en JavaScript y que no tiene parámetros. El cuerpo de la función es simplemente cambiar el texto de la propiedad mensaje
al nuevo valor “Adios mundo cruel
$scope
pero lo que hacemos es crear la función , sin nombre, y luego se la asignamos a la propiedad cambiarMensaje
. De esa forma la propiedad cambiarMensaje
realmente es una función y podría se llamada de la siguiente forma:
$scope.cambiarMensaje();
Si lo pulsamos veremos que en la página HTML ha cambiado el texto al nuevo valor.