我无法在forEach()
回调函数中访问angular方法。
我尝试使用箭头功能,也尝试使用bind(this)
。但它不起作用。
app.component.ts
formatServerData(data) {
var formatedData = data.map(function(el) {
var temp = {
title: el.title,
children: [],
isDirectory: true
}
Object.keys(el).forEach((key) => {
if (key != 'title') {
if (typeof el[key] == 'object') {
var folder = this.createFolder(el[key], key);
temp.children.push(folder);
}
}
}, this)
return formatedData;
})
}
createFolder(el, key) {
var tempDir = {
title: key,
children: [],
isDirectory: true
}
//if Array
if (el instanceof Array) {
var fileDir = {
isDirectory: false,
files: []
}
el.forEach(function(file) {
fileDir.files.push(file);
})
tempDir.children.push(fileDir);
} else if (typeof el == 'object') {
Object.keys(el).forEach(function(childFolder) {
var folder = this.createFolder(el[childFolder], childFolder);
tempDir.children.push(folder);
})
}
return tempDir;
}
我想访问createFolder()
方法,但它是undefined
回调中的forEach
。
更正我是否有任何错误