Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我无法访问注入的服务_Javascript_Angularjs - Fatal编程技术网

Javascript 我无法访问注入的服务

Javascript 我无法访问注入的服务,javascript,angularjs,Javascript,Angularjs,这是一个angulars应用程序。我有一个服务是这样声明的: define([], function() { function myService(anotherService, alerts) { //doing stuff here this.callMe = function(msg){ myfunc(msg) } } function myfunc(msg) { alerts

这是一个angulars应用程序。我有一个服务是这样声明的:

define([], function() {
    function myService(anotherService, alerts) {
        //doing stuff here
        this.callMe = function(msg){
            myfunc(msg)
        }
    }

    function myfunc(msg) {
        alerts.Success(msg);
    }

    myService.$inject = ['anotherService', 'alerts'];
    return myService;
});
我启动服务,并在某个时候调用其中的函数:

myService.callMe("hello");
在本例中,名为alerts的注入服务未定义。 如果我从函数callMe内部调用它们,那么它就工作了。 出于某种原因,此服务是以这种方式构建的,其中函数myfunc是在myService之外声明的。 我不知道这样做是为了什么。 如果我将其移动到服务中,那么我会在require模块中发现一些错误。
你有什么建议?服务声明之外的函数是否有办法访问注入的服务?

一种方法是将注入的服务添加为参数:

define([], function() {
    function myService(anotherService, alerts) {
        //doing stuff here
        this.callMe = function(msg){
            ̶m̶y̶f̶u̶n̶c̶(̶m̶s̶g̶)̶
            myfunc(alerts, msg)
        }
    }

    ̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶m̶y̶f̶u̶n̶c̶(̶m̶s̶g̶)
    function myfunc(alerts, msg) {
        alerts.Success(msg);
    }

    myService.$inject = ['anotherService', 'alerts'];
    return myService;
});

现在我没有得到未定义的错误。但什么也没发生。没有警报它不是常见的警报,但是该库导入的一些更奇特的东西出现了。