Ich habe einen Controller namens PortfolioService
. Ich habe es mit der Funktion .service
(im Gegensatz zu .factory
) erstellt, und es enthält eine Methode this.findPos
. Eine interne Hilfsmethode innerhalb des gleichen Service muss this.findPos
innerhalb eines forEach
nennen:Wie kann ich eine Angular-Funktion innerhalb des gleichen Dienstes aufrufen, wenn sie innerhalb eines ForEach liegt?
var _getPositions = function() {
var filtered = _filterBeforeDate();
filtered.forEach(function(trade){
var position = this.findPos(trade.symbol);
[etc...]
});
};
Dies funktioniert nicht. this
innerhalb einer forEach
verweist nicht PortfolioService
wie ich es will, und auch wenn ich console.log(this)
außerhalb der forEach
Block versuchen, gibt es nur die window
zurück. Wenn ich stattdessen versuche, PortfolioService.findPos()
aufzurufen, protokolliert es einen Fehler PortfolioService is not defined
. Wenn ich versuche, PortfolioService
in sich selbst zu injizieren (nicht die beste Idee, bin ich mir sicher), gibt es einen $injector.cdep
Fehler.
Ich kann nicht this.findPos
auf ein internes Hilfsmethode ändern (var
statt this
verwendet wird), weil ich PortfolioService.findPos()
in einem Controller zugreifen müssen. Was ist der beste Weg, damit umzugehen?