我有一个使用AWS Amplify进行用户管理的角度应用程序。在我的主要应用程序组件中,我使用auth.currentAuthentificatedUser获取用户数据以使用正确的令牌调用API。但是我的API调用要快于auth.currentAuthentificatedUser。我该如何处理?
主要应用程序组件:
import { Component } from '@angular/core';
import {AwsService} from './aws.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public async
title = 'app';
username = '';
constructor( public awsService: AwsService) {
this.awsService.refreshsession(() => {
this.username=this.awsService.userData.username
});
}
ngOnInit() {
}
};
主页组件调用API
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
constructor(public dialog: MatDialog, private _data: cotationBase, public router: Router, public awsService: AwsService, public callAPI: callAPI, public snackBar: MatSnackBar) {
}
ngOnInit() {
this.callAPI.getAPI('https://api-dev.cloudyproject.pauset.fr/v0/providers',(response) => {
console.log(response);
this.awsImage = '../..'+response.aws.icon;
this.azureImage = '../..'+response.azure.icon;
},
(response) => {
console.log(response);},
)
}
答案 0 :(得分:0)
在AppComponent
的模板中,继续使用*ngIf
指令。像这样:
<app-component>
<home-component *ngIf="username">
</home-component>
</app-component>
这样,在您将HomeComponent
设置为this.username
之前,它不会打开AppComponent
。这有道理吗?
如果此答案有效,请不要忘记接受它。