Saltar al contenido

¿Es posible llamar a ‘alert ()’ o ‘console.log ()’ desde Angular ng-click Expression?

Solución:

ng-click debe ser una expresión. Las expresiones de AngularJS no tienen acceso directo a variables globales como ventana, documento o ubicación. Esta restricción es intencional. Evita el acceso accidental al estado global, una fuente común de errores sutiles.

alert () y console.log (), no parecen estar disponibles.

Ambos alert() y console.log() son evaluados contra el global window objeto. Por otra parte ng-click es una expresión de AngularJS y se evalúa contra la scope asociado con él que no tiene ningún acceso directo a la window objeto. Por lo tanto, no están disponibles en el interior. scope.

AngularJS Expressions vs. JavaScript Expressions

Contexto: Las expresiones de JavaScript se evalúan en la ventana global. En AngularJS, las expresiones se evalúan contra un objeto de alcance.

AngularJS proporciona un servicio llamado $log para ese propósito. Puedes usar $log servicio como el siguiente:

var myApp = angular.module('myApp',[]);

myApp.controller('myController', ['$scope', '$log', function($scope, $log){
  $scope.TestClick = function(){
    $log.log('You have clicked');
  }
}])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myController">
  <input type="button" value="Click" ng-click="TestClick()"/>
</div>

Ambos son herramientas básicas proporcionadas por JS. ¡Debería estar disponible!

Si desea consolar o alertar desde HTML, probablemente no sea una buena manera de hacerlo. Tampoco creo que sea posible.

Puede optar por adjuntar su HTML a un controlador y luego mover el Console.log o alert a ese controlador. Y funcionará como se esperaba.


Expresiones AngularJS vs. Expresiones JavaScript

Las expresiones de AngularJS son como expresiones de JavaScript con las siguientes diferencias:

  • Contexto: Las expresiones de JavaScript se evalúan contra el global ventana. En AngularJS, las expresiones se evalúan contra un scope objeto.

– Guía para desarrolladores de AngularJS – Expresiones AngularJS frente a Expresiones JavaScript

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *