Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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
View 离子2-视图未在承诺范围内更新_View_Promise_Ionic2 - Fatal编程技术网

View 离子2-视图未在承诺范围内更新

View 离子2-视图未在承诺范围内更新,view,promise,ionic2,View,Promise,Ionic2,当我在android设备上使用PC启动Ionic应用程序时,它运行良好。现在我在家里,从github到我的私人windows PC,我把所有的东西都拿出来,然后我运行了“npm安装”、“cordova平台添加android”和“ionic运行android——设备”。现在这个应用程序不像以前那样工作了。我有一个从后端服务器加载图像的页面 <ion-content padding> Test {{test}} <ion-card *ngFor="let ima

当我在android设备上使用PC启动Ionic应用程序时,它运行良好。现在我在家里,从github到我的私人windows PC,我把所有的东西都拿出来,然后我运行了“npm安装”、“cordova平台添加android”和“ionic运行android——设备”。现在这个应用程序不像以前那样工作了。我有一个从后端服务器加载图像的页面

<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>
视图输出为“Test4”。因此,在从api.getImagesForScreen()返回的承诺中,视图似乎不再更新。代码应该可以正常工作,因为如果我打开chrome://inspect 并打开控制台,直到有“已加载”的日志记录。因此,他肯定应该在视图中显示“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);
        }
    );
});
有人能帮我吗

编辑:


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

即使我遇到了同样的问题。我使用http的可观察性。但在低端设备(如IOS 9.3.4)上,当视图在android、浏览器和IOS 10及以上版本上都能正常工作时,它不会被加载。同样的问题是,通常情况下,promise Reponnes会出现同样的问题。例如,使用承诺检索本地存储数据或模拟数据。如果我使用console.log,我可以看到我得到了新的值,但是视图没有更新。我使用angular/core中的ChangeDetectorRef,但我在所有promise的响应中调用detectChanges()方法,这很难看。
import {Promise} from 'es6-promise';
...
new Promise((resolve, reject) => {
    this.http.get(url).map(res => res.json()).subscribe(
        data => {
            resolve(data);
        },
        err => {
            reject(err);
        }
    );
});