I have the following angularjs service:
angular.module('app.main').factory('MyService', ["$http", function ($http) {
return new function () {
this.GetName = function () {
return "MyName";
};
};
}]);
How can I call GetName
function from MyService
from legacy js code?
Here's a utility method that I use :
getSrv("name-of_service", document.
body)For me it worked with:
I got 'Unknown provider' error when tried this:
and as i am using jqLite, i can't do
because selectors are not supported by jqLite, but i got [Dor Cohen] idea. My directive ng-app is on my body tag, then i can use:
or
Using the following line helps to execute my method from the angularjs service:
Use angular.injector. Using your code you can do something like the following:
Here is the jsfiddle: http://jsfiddle.net/wGeNG/
NOTE - You need to add "ng" as your first module before loading your custom module since your example code depends upon $http provider which is in the ng module.
EDIT - Using
get()
as in OP's answer but note this code is fetching the service without relying upon the element being bound to the app module "main.app".