我认为这更像是一个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;
});
答案 0 :(得分:3)
试试这个
var service = {
barMethod: function(arrayOfObjects){
var self = this
_.forEach(arrayOfObjects, function (ob) {
self.doSomething();
});
},
doSomething: function(){
//do something
},
};