2017-12-30 26 views
1

私のコンポーネントでは、クライアントが選択されたときに起動されるforeachループがあります。このループの中で、私は同じコンポーネントで関数を呼び出さなければなりません。foreachの角の呼び出し関数

これを行うには、this.functionName()を使用して関数を呼び出す必要があります。しかし、明らかに、これはforeachループの内部では機能しません。なぜなら、 'this'はもはやコンポーネント自体ではないからです。

誰にでも解決策がありますか?

this.clientService.selectedClient.forEach(function(client) { 
    this.getIntake(); // not working 
}); 

答えて

2

使用矢印機能

this.clientService.selectedClient.forEach((client) => { 
    this.getIntake(); // not working 
}); 

そうthis

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

+0

ローカルクラスのインスタンスにこのようなシンプルなソリューションを指しています!ありがとうございました。 –

+0

また、コンポーネントを関数スコープとして渡すこともできます:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions(この部分の字句を参照してください) – lbueker

+2

私は '.bind(this) 'はまた – brk

関連する問題