在ngOnInit上调用的Angular Service显示“未定义”,不显示图标

时间:2018-09-21 22:07:20

标签: javascript angular typescript azure rxjs

在以下Blitz上,当尝试访问Blob存储API时,在控制台中出现以下错误:

ERROR
Error: Cannot set property 'id' of undefined**

我怀疑错误与我编写服务的方式有关,也许我应该使用BehaviorSubject而不是HTTPClient,然后将xml解析为json对象。或者也许与异步调用有关。关键是当this.fileservice.add()位于ngOnInit函数内部时创建图标。

ngOnInit() {

  this.getAzureFiles();

  this.fileService.add({ Name: 'File 7', isFolder: false, parent: 'root' });

  this.updateFileElementQuery();
} 

因此在该函数内部,我只是将其替换为azure解析的响应,这应该可以工作。但这给了我上面的错误。

基本上,我需要blob API在前端显示为图标。

1 个答案:

答案 0 :(得分:1)

您必须将fileService add函数调用移到订阅中,并在该行之后立即调用this.updateFileElementQuery()。

您可以找到解决方案here