在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会被未定义
答案 0 :(得分:0)
发生什么类型的滞后?和 如何使用该变量(@Input)?或直接通过服务访问。
如果您的显示数据组件是子组件,则它将等待API调用,然后将数据存储在变量中,然后传递给另一个组件。
但能否请您分享所调用的API的更多详细信息。
如果您的API调用处于for循环中,
那么该变量的每次更改都会在子组件中称为(ngOnChange
),这可能是原因之一。