我有一个有角度的服务:
Website #2
在.service("MyService", ["$q", "myDep1", "myDep2", function ($q, myDep1, myDep2) {
function aFunction() {
//Breakpoint 2
}
return { //Breakpoint 1
aFunction: aFunction
}
}]);
(定义服务的位置),Breakpoint 1
和myDep1
已定义。当我的控制器调用myDep2
并且我点击aFunction
时,这些依赖关系是未定义的(尽管仍定义了$ q)。
给出了什么?我尝试将其更改为Breakpoint 2
,但这并未改变任何内容。
答案 0 :(得分:0)
尝试以下代码
<?php
$lihat = $_POST['cari'];
echo $lihat;
?>
现在,在您的控制器中,您可以直接致电.service("MyService", ["$q", "myDep1", "myDep2", function ($q, myDep1, myDep2) {
this.aFunction = function() {
// myDep1, myDep2 can be accessed here
}
}]);
。
答案 1 :(得分:0)
我有一个类似的问题,但有一个.provider
答案 2 :(得分:0)
我的用例略有不同,但我的解决方案对我有用。我希望看到一个看起来不那么糟糕的东西,如果有人有一个。
我将依赖项注入函数中,如下所示:
.service("MyService", ["$q", "myDep1", function ($q, myDep1) {
// add myDep1 as a param in aFunction
function aFunction(_myDep1_) {
// myDep1 is in scope via _myDep1_
}
// calling aFunction here and passing in myDep1 will pass that dependency into the function
aFunction(myDep1);
return { //Breakpoint 1
aFunction: aFunction
}
}]);
注意:如果从应用程序中的其他位置调用myService.aFunction(),则必须将myDep1作为参数传递,这绝对是丑陋的。如果你发现你开始做很多事情,你可能会在工作中有一个反模式。我觉得这不是最好的方法,但是在紧要关头可行。