如何在角度js中手动获取依赖项的实例?

时间:2013-12-02 04:19:40

标签: angularjs

我有一个对象reportsService,对于它所做的每次调用,它都会初始化一个名为serviceCall的新对象。每个方法都需要实例化它自己的serviceCall实例。

使用$ injector.get()正确的方法吗?

app.factory('reportsService', ['$injector', function ($injector) {
    var o = {};
    o.getServiceCall = function () {
        return $injector.get('serviceCall');
    };
    o.getOriginCompositionData = function (ajaxOptions) {
        ajaxOptions.url = '/test/SpiderRequestOriginComposition';
        o.getServiceCall().initialize(ajaxOptions);
    };
    o.getExeuctionTimeData = function (ajaxOptions) {
        ajaxOptions.url = '/test/SpiderRequestExeuctionTime';
        o.getServiceCall().initialize(ajaxOptions);
    };
    o.getCacheCompositionData = function (ajaxOptions) {
        ajaxOptions.url = '/test/SpiderRequestCacheComposition';
        o.getServiceCall().initialize(ajaxOptions);
    };
    return o;
}]);

1 个答案:

答案 0 :(得分:2)

您可以简单地在(或我猜测而不是)“$ injector”之后注入第二个名为“serviceCall”的参数并使用它。它将在关闭时捕获并可从任何“o”函数中使用。