2017-06-13 14 views
0

角度4でlodashを使用していて、時間を使って数値の配列を作成しています。私は理由を理解できませんが、lodash関数の中で 'this'を使用することはできません。なぜなら、定義されていないので、これを自己として最初に割り当てる必要があります。角度4のLodash、これは定義されていません

private arrayNum: number[] = []; 

ngOnInit() { 
let self = this; 
_.times(31, function (n) { 
    self.arrayNum.push(n + 1); 
}); 
} 

これはなぜですか、または私がロダッシュで間違っている場合は誰でも説明してください。ありがとう

+3

利用脂肪の矢印構文... – Alex

答えて

3

コンテキストを保持するコールバックのためにarrow functionを使用することができます。

_.times(31, (n) => { 
    this.arrayNum.push(n + 1); 
}); 
+0

すごい、それは驚くほど速かったです。答えは – Simon245

+0

@ Simon245ありがとうございます。ありがとうございます。 :-) – Pengyy

1

同じ機能を使用して、同じコンテキストを維持できます。

_.times(31, (n) => { 
    this.arrayNum.push(n + 1); 
}); 
+0

答えがありがとう、残念なことに@Pengyyはあなたよりもちょっと早い答えを出しました。彼らが同じであれば、私は彼にそれを渡します – Simon245

関連する問題