这是本主题的后续问题: Calling a function in AngularJS service from the same service?
我意识到太晚了,我应该打开一个新问题而不是在那里问它(对不起)
我想要执行以下操作:调用服务函数中的函数,并且调用在$ watchCollection内的额外难度。它看起来像这样:
返回{
myFunc1: function(param) {
},
myFunc2: function(scope,param) {
scope.$watchCollection(param,function(v) {
return foo + this.myFunc1(param)// do some stuff with the first function
}
}
}
由于函数(v){您现在处于函数内的另一个函数中,this
不再是服务而是window
。
如何在myFunc2 $ watchCollection参数函数中访问此myFunc1?
提前致谢
答案 0 :(得分:9)
您可以将this
保存在另一个变量(通常称为self
或that
)中,并使用它来访问myFunc1
。
myFunc1: function(param) {
},
myFunc2: function(scope,param) {
var self = this;
scope.$watchCollection(param,function(v) {
return foo + self.myFunc1(param)// do some stuff with the first function
}
}