Lets see initially how our controller looks like.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script> </head> <body ng-app="myApp"> <div ng-controller="myController"> <input type="button" value="Say Hello" ng-click="sayHello()"/> <br /> <span>{{name}}</span> </div> <hr/> </body> <script type="text/javascript" > var app = angular.module('myApp', []); app.controller('myController', function ($scope) { $scope.name = ''; $scope.sayHello = function () { $scope.name = 'Nifal Nizar'; }; }); </script> </html> |
Now lets say you wanted to call the "sayHello()" function from outside the controller. First what you should do is get the scope of the controller which contains the method you wanted call to a variable. In order to that first you should have sort of an identification to the controller. Simply you can give id to the container which contains the controller. Then you can simply apply it to the scope.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script> </head> <body ng-app="myApp"> <div id="mySec" ng-controller="myController"> <input type="button" value="Say Hello" ng-click="sayHello()"/> <br /> <span>{{name}}</span> </div> <hr> <br /> <input type="button" value="Say Hello From JQuery" onclick="callAngularFunction()"> </body> <script> var app = angular.module('myApp', []); app.controller('myController', function ($scope) { $scope.name = ''; $scope.sayHello = function () { $scope.name = 'Nifal Nizar'; }; }); function callAngularFunction() { var scope = angular.element(document.getElementById("mySec")).scope(); scope.$apply(function () { scope.sayHello(); }); } </script> </html> |
Hope you had what you are looking for.