Comment appeler la fonction javascript dans le contrôleur AngularJS?

J’ai ci-dessous des fonctions Javascript

 function ShowProgress() { var modal = $('
'); modal.addClass("spinmodal"); $('body').append(modal); var loading = $(".loading"); loading.show(); var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0); var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0); loading.css({ top: top, left: left }); } function HideProgress() { var loading = $(".loading"); loading.hide(); $(".spinmodal").remove(); }

Maintenant, je veux appeler ShowProgress() et HideProgress() dans le contrôleur angular. Je souhaite appeler ShowProgress() dès que deletePrepared est deletePrepared et HideProgress() sous GetAllPrepared .

  app.controller("myCntrl", function ($scope, angularService, $modal) { $scope.deletePrepared = function (itm) { var getData = angularService.DeletePrepared(itm.ProductId); getData.then(function (msg) { GetAllPrepared(); }, function () { alert('Error in Deleting Record'); }); } });  

Appelez simplement ces méthodes:

 app.controller("myCntrl", function ($scope, angularService, $modal) { $scope.deletePrepared = function (itm) { ShowProgress(); var getData = angularService.DeletePrepared(itm.ProductId); getData.then(function (msg) { HideProgress(); GetAllPrepared(); }, function () { alert('Error in Deleting Record'); }); } }); 

Conseil: Utilisez les directives angulars pour manipuler le DOM et vous n’avez besoin d’aucun code jQuery pour la manipulation du DOM. Angular suffit.

Vous pouvez créer un service et le twigr à l’intérieur du contrôleur. Grâce à cela, vous pouvez réutiliser la fonction dans plusieurs contrôleurs.

Exemple,

 /* Controller */ angular.module('appApp') .controller('myCtrl', function ($scope, Modal) { Modal.openModal("myBtn"); } /* Service */ angular.module('appApp') .factory('Modal', function() { return { openModal: function(btnId) { // Java script code goes here... } }; }); 

PS: N’oubliez pas d’append un service dans votre fichier index.html.

J’espère que ça aide!