Saltar al contenido

Llamar a la función angularjs usando jquery / javascript

Solución:

La solución proporcionada en las preguntas que vinculó es correcta. El problema con su implementación es que no ha especificado el IDENTIFICACIÓN del elemento correctamente.

En segundo lugar necesitas usar load evento para ejecutar su código. Actualmente DOM no está cargado, por lo tanto, el elemento no se encuentra, por lo que está obteniendo un error.

HTML

<div id="YourElementId" ng-app='MyModule' ng-controller="MyController">
    Hi
</div>

Código JS

angular.module('MyModule', [])
    .controller('MyController', function ($scope) {
    $scope.myfunction = function (data) {
        alert("---" + data);
    };
});

window.onload = function () {
    angular.element(document.getElementById('YourElementId')).scope().myfunction('test');
}

MANIFESTACIÓN

Puede utilizar lo siguiente:

angular.element(domElement).scope() para obtener el alcance actual del elemento

angular.element(domElement).injector() para obtener el inyector de aplicaciones actual

angular.element(domElement).controller() para obtener una instancia de ng-controller.

Espero que pueda ayudar

Otra forma es crear funciones en el ámbito global. Esto era necesario para mí, ya que no era posible en Angular 1.5 alcanzar el alcance de un componente.

Ejemplo:

angular.module("app", []).component("component", {
  controller: ["$window", function($window) {
    var self = this;
    
    self.logg = function() {
      console.log("logging!");
    };
    
    $window.angularControllerLogg = self.logg;
  }
});
               
window.angularControllerLogg();

¡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 *