我正在研究Ionic 4,并且试图了解它的基本概念。因此,我目前正在使用的应用程序遇到了问题。
其功能之一是显示用户信息,除两个变量外,其他所有内容均正确显示。
这是我页面.ts
的一部分
ngOnInit() {
this.slug = this.route.snapshot.paramMap.get('id');
this.loadData(); }
loadData() {
if (this.dataService.loaded) {
this.userList = this.dataService.getUserlist(this.slug);
} else {
this.dataService.load().then(() => {
this.userList = this.dataService.getUserlist(this.slug);
});
}}
...
displayActvLvl(): string {
let temp: string;
let val: number;
val = this.userList.actLvlVal;
if (val === 1.2) {
temp = 'No Active';
} else if (val === 1.375) {
temp = 'Lightly Act';
} else if (val === 1.55) {
temp = 'Moderate Active';
} else if (val === 1.75) {
temp = 'Very Active';
} else if (val === 1.9) {
temp = 'Athlete';
}
return temp;}
displayGender(): string {
if (this.userList.gender) {
return 'Female';
} else {
return 'Male';
} }
这是两个没有显示信息的项目
<ion-row>
<ion-col size="6">
<ion-item text-center>
<ion-label position="stacked">{{displayGender()}}</ion-label>
<ion-note>Gender</ion-note>
</ion-item>
</ion-col>
<ion-col size="6">
<ion-item text-center>
<ion-label position="stacked">{{displayActvLvl()}}</ion-label>
<ion-note>Activity Level</ion-note>
</ion-item>
</ion-col>
</ion-row>
我知道这个问题,但是我找不到解决办法。据我了解,当从数据服务中加载数据,然后页面被初始化时,这就是两个函数运行但两个项自身不会刷新的时候。有帮助吗?
这是数据服务中的加载功能
load(): Promise<boolean> {
return Promise.resolve(true);
} 编辑: 数据服务中的GetUserList函数
getUserlist(id): UserInfo { return this.userList.find(userinfo => userinfo.id === id);}
答案 0 :(得分:0)
异步管道与Observables或Promises一起使用。 由于您的功能是同步的,因此从模板html中删除管道可能应该解决此问题?