this is a follow up question to this topic: Calling a function in AngularJS service from the same service?
I realized too late I should open a new question instead asking it there (sorry for that)
I want to do the following: calling a function within a service function with the additional difficulty the call is within $watchCollection. It looks something like this:
return {
myFunc1: function(param) {
},
myFunc2: function(scope,param) {
scope.$watchCollection(param,function(v) {
return foo + this.myFunc1(param)// do some stuff with the first function
}
}
}
Because of function(v) { you are now in another function within the function and this
is no longer the service but the window
.
how can I get access to this myFunc1 within the myFunc2 $watchCollection parameter function?
thanks in advance
this is a follow up question to this topic: Calling a function in AngularJS service from the same service?
I realized too late I should open a new question instead asking it there (sorry for that)
I want to do the following: calling a function within a service function with the additional difficulty the call is within $watchCollection. It looks something like this:
return {
myFunc1: function(param) {
},
myFunc2: function(scope,param) {
scope.$watchCollection(param,function(v) {
return foo + this.myFunc1(param)// do some stuff with the first function
}
}
}
Because of function(v) { you are now in another function within the function and this
is no longer the service but the window
.
how can I get access to this myFunc1 within the myFunc2 $watchCollection parameter function?
thanks in advance
Share Improve this question edited May 23, 2017 at 12:17 CommunityBot 11 silver badge asked Nov 18, 2013 at 16:30 SleeneeSleenee 5941 gold badge8 silver badges21 bronze badges1 Answer
Reset to default 9You can save the this
in another variable (usually called self
or that
) and use it to access 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
}
}