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

标签 javascript angularjs service

我认为这更像是一个 javascript 问题而不是 Angular 问题,但上下文是 Angular 问题,所以将其保留在那里。基本上我正在尝试调用 doSomething 方法。看起来 lodash 的 ._forEach 正在创建自己的作用域,所以我无法使用 this 访问 var service,因为它引用了循环这里。

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

'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;
});

最佳答案

试试这个

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

    },

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

};

关于javascript - 从 ForEach 循环访问父对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37445411/

相关文章:

AngularJS ui-grid 使用enableFullRowSelection时排除列能够选择行

javascript - 在 Promise 中 resolved 或 rejected 之后你应该返回一些东西吗?

javascript - 我的 View 没有被渲染(ASP.NET/Angular)

javascript - 包含外部 API 时如何测试 AngularJS?

c++ - 如何将 Windows 服务连接到控制台 session

java - 限制 RESTful 服务的拨出调用数量

android - 如何从一个 Activity 启动 android 服务并在另一个 Activity 中停止服务?

javascript - 淡入jquery div显示

javascript - 使 chrome 将表格标题放在每页的顶部以打印长表格

javascript - Nodejs/Express - 启动我的应用程序 : express. createServer() 已弃用