最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Calling a function in AngularJS service from the same service but within $watchcollection - Stack Overflow

programmeradmin0浏览0评论

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 badges
Add a ment  | 

1 Answer 1

Reset to default 9

You 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 

    }       
}

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论