Angular 2プロジェクトに古いJavaScriptモジュールを追加しようとしていて、親スコープにアクセスする際に問題が発生しました。匿名関数に親スコープを追加する - JavaScriptをAngular 2に追加する
let testString = "Parent Scope Accessed!";
Object.keys(data).forEach((function(Key, Index) {
if(filter.type == 'parameter') {
Object.keys(dirArray).forEach(function(dirKey, dirIndex) {
linkArray = dirArray[dirKey];
if(filter.dir == 2) { //Direction filter
Object.keys(linkArray).forEach(function(linkKey, linkIndex) {
if(filter.type != 'sub')) {
dataObject = linkArray[linkKey];
//ERROR with scoping occurs below. Need to add parent scope.
console.log(this.testString);
}
});
}
});
}
}));
私はこのような何かをしようとしました:
let testString = "Parent Scope Accessed!";
Object.keys(data).forEach((function(Key, Index) => {
if(filter.type == 'parameter') {
Object.keys(dirArray).forEach(function(dirKey, dirIndex) => {
linkArray = dirArray[dirKey];
if(filter.dir == 2) { //Direction filter
Object.keys(linkArray).forEach(function(linkKey, linkIndex) => {
if(filter.type != 'sub')) {
dataObject = linkArray[linkKey];
//ERROR with scoping occurs below. Need to add parent scope.
console.log(this.testString);
}
});
}
});
}
}));
しかし、それは問題の全く新しいセットを与えるが、少なくとも、IDEは親スコープが追加されていることを示しています。私は '=>'構文を正しく使用していないと仮定します。これを行うより良い方法はありますか?
「Object.keys(data).forEach((Key、Index)=> { ...}); '? –
ありがとうHarry - functionキーワードを削除する必要がありました。不足している関数のクラス101です。 – fila
これは101ではありません; –