私はPortfolioService
というコントローラを持っています。 とは対照的に、.service
関数を使用して作成しました。メソッドはthis.findPos
です。forEach内にある場合、同じサービス内からAngular関数を呼び出すにはどうすればよいですか?
var _getPositions = function() {
var filtered = _filterBeforeDate();
filtered.forEach(function(trade){
var position = this.findPos(trade.symbol);
[etc...]
});
};
これは動作しません:同じサービス内の内部ヘルパーメソッドはforEach
内this.findPos
を呼び出す必要があります。 this
内のforEach
は、PortfolioService
を参照していません。forEach
ブロックの外側のconsole.log(this)
にしようとしても、window
を返します。代わりにPortfolioService.findPos()
に電話すると、PortfolioService is not defined
というエラーが記録されます。私がPortfolioService
を自分自身に注入しようとすると(それはベストアイデアではないと確信しています)、それは$injector.cdep
というエラーを出します。
IはコントローラにPortfolioService.findPos()
にアクセスする必要があるので、私は(var
代わりにthis
を使用して)内部ヘルパーメソッドにthis.findPos
を変更することはできません。これを処理する最善の方法は何ですか?