Ionic 2 - 视图未在Promise内更新

时间:2017-05-09 10:02:36

标签: view promise ionic2

当我在我的Android设备上使用我的PC启动它时,我的Ionic应用程序正常工作。现在我在家,我把所有东西从github拉到我的私人Windows PC,然后我运行“npm install”和“cordova platform add android”和“ionic run android --device”。现在该应用程序不像以前那样工作。我有一个页面,我从后端服务器加载图像。

<ion-content padding>

  Test
  {{test}}

    <ion-card *ngFor="let image of images" (click)="goToProfilePage(image.hash);">
        <img src="{{image.url}}"/>
        <div class="card-title">{{image.name}}</div>
        <div class="card-subtitle">{{image.address}}, {{image.zip}} {{image.city}}</div>
    </ion-card>

</ion-content>

TS:

images: any;
test: any;

constructor(public navCtrl: NavController, public navParams: NavParams, public uiHelper: UiHelper, public api: ApiService, public zone: NgZone) {
    this.test = "Test2";
    this.loadImages();
}

loadImages() {
    this.test = "Test3";
    this.uiHelper.showLoading();
    this.test = "Test4";
    this.api.getImagesForScreen().then(
        response => {
            this.test = "Test5";
            if (response['status'] == constants.API_ON_SUCCESS) {
                this.test = "Test6";
                console.log("Loaded");
                this.zone.run(() => {
                    this.test = "Test7";
                    this.images = response['data'];
                    this.shuffle(this.images);
                    this.uiHelper.dismissLoading();
                });
            }
            else {
                this.uiHelper.dismissLoadingAndPrintApiErrorWithMessage(response['messages']);
            }
        },
        err => {
            this.uiHelper.dismissLoadingAndPrintApiError();
        }
    );
}

视图输出为“Test Test4”。因此,似乎视图在api.getImagesForScreen()返回的promise中不再更新。代码应该可以正常工作,因为如果我打开chrome://检查并打开控制台,则会记录“已加载”。所以他肯定应该在视图上向我展示“Test6”或“Test7”。 api.getImagesForScreen的承诺是这样创建的:

import {Promise} from 'es6-promise';
...
new Promise((resolve, reject) => {
    this.http.get(url).map(res => res.json()).subscribe(
        data => {
            resolve(data);
        },
        err => {
            reject(err);
        }
    );
});

有人可以帮我吗?

修改

另一个奇怪的事情:当我从其他网站打开网站时出现问题。如果我将此页面设置为起始页面,则一切正常。但是,当我切换页面然后再次返回该页面时,它就不再起作用了。因此,似乎第一次从后端加载某些东西它正在工作,但在第二次它不再工作(只有视图,因为控制台仍然记录“加载成功”)。控制台中没有错误...

0 个答案:

没有答案