【问题标题】:Angular service and componentAngular 服务和组件
【发布时间】:2019-03-07 16:13:05
【问题描述】:

在 Angular 中,我试图访问存储的 api 数据,而在另一个组件中试图显示该数据,但似乎存在滞后。 app.module 组件在服务中调用 Api 并尝试访问存储在另一个组件的变量中的数据。两者之间似乎有小的滞后。

因此,如果首先加载应用程序,数据不存在,但如果我单击另一个组件并返回(应该显示数据的组件),数据就在那里。

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable()
export class BusinessService {
  private usersUrl = 'api/newBusiness';
  newBusinessApiData;

  constructor(private http: HttpClient) { }

  getNewBusiness(): any {
    return this.http.get(this.usersUrl).subscribe(response => {
      this.newBusinessApiData = response;
      console.log(response);
    });
  }
}

//在业务组件中:

  ngOnInit() {
    this.businessData = this.service.newBusinessApiData;
    console.log('New business component' + this.businessData);
  }

所以当我控制台记录它时,businessData 是未定义的

【问题讨论】:

  • 你的问题是什么?
  • 当我最初尝试访问数据时,变量是空的,但如果我点击另一个组件并返回数据就在那里。
  • 如果您发布一些代码,我们可能会提供更好的帮助
  • 这不是问题,而是陈述。请附上您的代码您需要帮助的问题。

标签: angular


【解决方案1】:

发生了什么类型的延迟?和 如何使用该变量(@Input)?或直接通过服务访问。

如果您的显示数据组件是子组件,那么它将等待 API 调用,然后将数据存储在变量中,然后传递给另一个组件。 但是您能否分享您调用的 API 的更多详细信息。 如果您的 API 调用在 for 循环中, 然后在子组件中调用该变量的每次更改 (ngOnChange),这可能是一个原因。

【讨论】:

猜你喜欢
  • 2021-09-13
  • 2020-12-28
  • 2019-06-15
  • 2016-05-10
  • 2018-10-13
  • 2021-01-15
  • 2020-02-05
  • 2018-08-22
相关资源
最近更新 更多