web-dev-qa-db-ja.com

Ionic 3ビューを更新していません

こんにちは、サーバーへのhttpリクエストの後に更新する関数を取得しました。 console.logには値が更新されたことが示されているようですが、他のコンポーネント(入力など)をクリックしない限り、UIは更新されていません。

これは私の機能です:

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
}, (err) => {
    console.log("failure:");
})

これは私のビューhtmlです:

    <ion-row>
      <ion-col center width-100 no-padding>
        <h2>{{sv_value}}</h2> //This is not updated
      </ion-col>
    </ion-row>

この問題に取り組む方法はありますか?ありがとうございました

17
Redzwan Latif

_this.sv_value = obj.value;_をNgZone.run();内に配置して、Angularで変更を検出します。

_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:");
        });
    }
}
_
26
robbannn