【发布时间】:2020-06-02 03:31:57
【问题描述】:
我是 Angular 的新手,正在开发一个示例应用程序,该应用程序接受一个属性文件作为来自 html 的输入,处理文件并使用打字稿将值存储在地图中。我可以将值存储在地图中,但无法从其他组件访问地图。
文件阅读器组件.ts
export class FileReaderComponent {
static readFileAsMap(file: File): Map<string, string> {
let map :Map<string, string>= new Map<string, string>();
let fileReader = new FileReader();
fileReader.onloadend = (e) => {
// By lines
let lines = fileReader.result.toString().split('\n');
for(let line = 0; line < lines.length; line++){
if(lines[line].startsWith('#') ||
lines[line].startsWith('//') ||
! lines[line].includes('=') ) {
// invalid line - ignoring it
continue;
}
let lineArr = lines[line].split('=');
let key = lineArr[0].trim();
let value = lineArr[1].trim();
map.set(key, value);
// not checking duplicate keys to let override the config
}
};
fileReader.readAsText(file);
console.log(map);
return map;
}
}
在上述文件中,console.log(map) 工作正常。但是当我们在另一个组件中调用这个方法时(如下),它返回的 map 包含 0 个元素。
let config: Map<string, string> = FileReaderComponent.readFileAsMap(configFile);
【问题讨论】:
标签: angular typescript