角服务和组件

时间:2019-03-07 16:13:05

标签: angular

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

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

enter code here    从“ @ angular / core”导入{可注射};   从'@ angular / common / http'导入{HttpClient};

@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会被未定义

1 个答案:

答案 0 :(得分:0)

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

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