Ionic 3 not updating view

后端 未结 2 462
孤独总比滥情好
孤独总比滥情好 2021-02-05 07:28

Hi I got a function which will update after a http request to the server. It seems that the console.log show that the value has been updated but the UI is not updating unless I

相关标签:
2条回答
  • 2021-02-05 08:12

    I was facing the exact same issue in Ionic 4 and this is how I fixed it:

    import { ChangeDetectorRef } from '@angular/core';
    
    constructor(private changeRef: ChangeDetectorRef)
    
    fileTransfer.upload(this.created_image, upload_url, options)
    .then((data) => {
        console.log("success:"+data.response); //This is showing correct response
        var obj = JSON.parse(data.response);
        this.sv_value = obj.value;
        console.log(this.sv_value); //This is showing correct value
        this.changeRef.detectChanges(); // ---> Add this here
    }, (err) => {
        console.log("failure:");
    })
    

    Essentially by using detectChanges(), we are forcing the platform to detect the changes and kick them into the UI.

    0 讨论(0)
  • 2021-02-05 08:26

    Try placing this.sv_value = obj.value; inside NgZone.run(); to make Angular detect the change.

    import { Component, NgZone } from "@angular/core";
    ...
    
    export class MyComponentPage {
        constructor(
            private zone: NgZone
            ...
        ){ }
    
        yourFunction(){
            fileTransfer.upload(this.created_image, upload_url, options)
            .then((data) => {
                console.log("success:"+data.response); //This is showing correct response
                var obj = JSON.parse(data.response);
    
                this.zone.run(() => {
                    this.sv_value = obj.value;
                });
    
                console.log(this.value); //This is showing correct value
            }, (err) => {
                console.log("failure:");
            });
        }
    }
    
    0 讨论(0)
提交回复
热议问题