Javascript 我无法访问注入的服务
这是一个angulars应用程序。我有一个服务是这样声明的: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
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;
});
现在我没有得到未定义的错误。但什么也没发生。没有警报它不是常见的警报,但是该库导入的一些更奇特的东西出现了。