一尘不染

从简单的JS代码调用angularjs服务

angularjs

我有以下angularjs服务:

angular.module('app.main').factory('MyService', ["$http", function ($http) {
    return new function () {

        this.GetName = function () {
            return "MyName";
        };
    };
}]);

如何从旧版js代码中调用GetName函数MyService


阅读 318

收藏
2020-07-04

共1个答案

一尘不染

使用angular.injector。使用您的代码,您可以执行以下操作:

angular.module('main.app', []).factory('MyService', ['$http', function ($http) {
    return new function () {

        this.GetName = function () {
            return "MyName";
        };
    };
}]);


angular.injector(['ng', 'main.app']).get("MyService").GetName();

这是jsfiddle:http :
//jsfiddle.net/wGeNG/

注意 -加载自定义模块之前,您需要添加“ ng”作为第一个模块,因为示例代码取决于ng模块中的$ http提供程序。

编辑 - get()在OP的答案中使用, 请注意,此代码在不依赖于绑定到应用程序模块“ main.app”的元素的情况下获取服务。

2020-07-04