ng我的功能错误

时间:2018-04-30 19:02:54

标签: angular http ionic-framework ngif

我正在尝试显示数据库中的数据。然后我想验证每个数据是否存在于另一个表中,所以我需要发送一个请求我的后台来检查这些数据。然后我需要证明它是否有效。

问题是*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);
         });
    }
}

1 个答案:

答案 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返回一个布尔值。 进一步阅读:

https://toddmotto.com/angular-ngif-async-pipe