我正在尝试显示数据库中的数据。然后我想验证每个数据是否存在于另一个表中,所以我需要发送一个请求我的后台来检查这些数据。然后我需要证明它是否有效。
问题是*ngIf
不起作用,它告诉我我的提供者功能不起作用。
这是HTML页面:
<ion-row *ngFor="let obj of listObj">
<ion-col col-8>
<ion-icon name="md-checkmark-circle-outline"></ion-icon>
<p>Objectif : {{obj.id_obj}} </p>
<p id="nameobj"> {{obj.des_obj | titlecase}}</p>
</ion-col>
<ion-col col-4 *ngIf="testobj(obj.id_obj_ser).length">
<p>lol</p>
<!--
<p id="valide">Vue</p>
<p id="non-valide">Non Vue</p>-->
</ion-col>
</ion-row>
这是我的控制者:
export class ObjectifEnsPage {
listObj = <[any]>[];
testiObj = <[any]>[];
id_stage: number;
cin: number;
test: boolean;
constructor(public navCtrl: NavController, public navParams: NavParams, private etudiant: EtudiantProvider) {
this.id_stage = this.navParams.get('stage');
this.cin = this.navParams.get('cin');
console.log("el stage w el cin ahawma" + this.id_stage, this.cin);
}
ionViewDidLoad() {
console.log('ionViewDidLoad ObjectifEnsPage');
this.getobjectif()
}
getobjectif() {
this.etudiant.getobjectif(this.id_stage).subscribe((data: any) => {
this.listObj = data;
console.log(data);
}, error => {
console.log(error);
});
}
testobj(id: number): any {
this.etudiant.getobjectifvalidation(id, this.cin).subscribe((data: any) => {
this.testiObj = data;
}, error => {
console.log(error);
});
}
}
答案 0 :(得分:0)
如果您使用boolean
,则应返回*ngIf
你的函数应该返回一个布尔值,或者一个解析为布尔值的Observable
private testiObj$: Observable<any>;
testobj(id: number): any {
this.testiObj$ = this.etudiant.getobjectifvalidation(id, this.cin);
现在您可以使用async pipe
<ion-col col-4 *ngIf="testobj(obj.id_obj_ser) | async">
只要Observable返回一个布尔值。 进一步阅读: