从ForEach循环访问父对象的方法

时间:2016-05-25 18:52:55

标签: javascript angularjs service

我认为这更像是一个javascript问题,而不是一个有角度的问题,但是上下文是有角度的,所以保持它在那里。基本上我试图调用doSomething方法。看起来lodash的._forEach正在创建自己的范围,因此我无法使用var service访问this,因为这是指循环。

那么,对于我来说,从下面的代码(doSomething内部)中调用forEach的最佳方式是什么?

'use strict';

angular.module('app').service('fooService', function()
{

    var service = {
        barMethod: function(arrayOfObjects){
            //this.doSomething(); - this works if not commented out, 
            //but I need it from within loop
            _.forEach(arrayOfObjects, function (ob) {
                this.doSomething();
            });

        },

        doSomething: function(){
            //do something
        },

    };

    return service;
});

1 个答案:

答案 0 :(得分:3)

试试这个

var service = {
    barMethod: function(arrayOfObjects){
          var self = this
        _.forEach(arrayOfObjects, function (ob) {
            self.doSomething();
        });

    },

    doSomething: function(){
        //do something
    },

};