Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ionic 2不更新用户界面_Javascript_Angular_Typescript_Ionic2 - Fatal编程技术网

Javascript Ionic 2不更新用户界面

Javascript Ionic 2不更新用户界面,javascript,angular,typescript,ionic2,Javascript,Angular,Typescript,Ionic2,当我改变一个变量时,我遇到了离子2不更新我的UI的问题 html: 使用。它检测变量的变化并更新UI。在构造函数中创建private ref:ChangeDetectorRef,然后在变量更改时需要更新UI时调用this.ref.detectChanges()。使用。它检测变量的变化并更新UI。在构造函数中创建private ref:ChangeDetectorRef,然后在变量更改时需要更新UI时调用this.ref.detectChanges()。注意:避免将两种方式与函数绑定,因为Angu

当我改变一个变量时,我遇到了离子2不更新我的UI的问题

html:


使用。它检测变量的变化并更新UI。在构造函数中创建
private ref:ChangeDetectorRef
,然后在变量更改时需要更新UI时调用
this.ref.detectChanges()

使用。它检测变量的变化并更新UI。在构造函数中创建
private ref:ChangeDetectorRef
,然后在变量更改时需要更新UI时调用
this.ref.detectChanges()

注意:避免将两种方式与函数绑定,因为Angular不知道它何时更改,所以它被称为每个最小的内容更改。您的
*ngFor
小姐
或者您的代码也丢失了它。@ThienHoang您建议对我的代码做什么更改,而不是*ngFor?”。我对angular非常陌生,实际上我开始使用ionic时根本不知道angular,我正在学习flyJust注意:避免将2种方式与函数绑定,因为angular不知道它何时变化,所以它被称为每个最小的东西变化。您的
*ngFor
小姐
或者您的代码也丢失了它。@ThienHoang您建议对我的代码做什么更改,而不是*ngFor?”。我对angular非常陌生,实际上我开始使用ionic,对angular一点也不了解,我正在飞行中学习。事实证明,FCM在向我的订阅服务器发送消息时,超出了当前的NgZone,不管是什么,它是如何运行的,但它超出了这个范围。如果我在
this.zone.run(()=>{/*code here*/}
中包装更改变量的代码,一切都会正常工作。结果是,FCM在向我的订阅服务器发送消息时,超出了当前的NgZone,不管它是什么,它是如何运行的,但它运行在该区域之外。如果我包装在
this.zone.run(()=>{/*这里编码*/}
一切正常。
<ion-card *ngFor="let event of mEvents (click)="onEventCardClick(event)">
    <ion-card-content ion-item>
        <span class="eventTitle">{{ event.title }}</span> <br/>
        <span class="relativeDate">{{ event.getRelativeTimeString() }}</span>
        <ion-badge item-end>{{ event.reservationsCount }}</ion-badge>
        <ion-badge *ngIf="event.hasUnreadMessages" color="danger" item-end>{{ event.unreadMessagesCount }}</ion-badge>
    </ion-card-content>
</ion-card>
this.fcm.onNotification().subscribe((notification:NotificationData) => {
    if(!this.navCtrl.isActive(this.viewCtrl))
        return;

    notification.event = JSON.parse(notification.event);
    notification.reservation = JSON.parse(notification.reservation);
    notification.reservation_message = JSON.parse(notification.reservation_message);

    let eventId: number = notification.event.id;
    for(let i=0; i<this.mEvents.length; i++) {
        if(this.mEvents[i].id == eventId) {
            this.mEvents[i].unreadMessagesCount++;
            this.mEvents[i].hasUnreadMessages = true;
            return;
        }
    }
});