Javascript 在ngOnInit上调用角度服务,显示';未定义';,不显示图标

Javascript 在ngOnInit上调用角度服务,显示';未定义';,不显示图标,javascript,angular,typescript,azure,rxjs,Javascript,Angular,Typescript,Azure,Rxjs,在以下情况下,当尝试访问blob存储API时,控制台中出现以下错误: ERROR Error: Cannot set property 'id' of undefined** 我怀疑错误与我编写服务的方式有关,也许我应该使用BehaviorSubject而不是HTTPClient,然后将xml解析为json对象。或者可能与异步调用有关。关键是当this.fileservice.add()位于ngOnInit函数中时,会创建图标 ngOnInit() { this.getAzureFile

在以下情况下,当尝试访问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在我的前端显示为图标。

您必须将fileService add函数调用移动到subscribe中,并在该行之后调用this.updateFileElementQuery()


您可以在
getAzureFiles
中的
this.fileService.add(this.azureFiles)行找到解决方案之后,code>应该位于subscribe回调中。在原始代码中,您尝试在设置之前使用
this.azureFiles
。看,可能是重复的。我这样做了,但是正如你所看到的,图标没有显示出来。只有当this.fileService.add(无论什么)在订阅功能之外时,图标才会显示。我看到一个“文件夹a”图标。这就是你所说的图标吗?文件夹A图标是硬编码的,请参见ngOnInit中的第32行