如何在视图中触发数据更新?

时间:2018-05-05 16:56:08

标签: javascript typescript ionic-framework ionic3

我在视图中更新数据时遇到了一些问题。我有一个返回数据的服务,我可以在控制台中看到它正在获取最新的帖子。

但是,在我的Ionic应用程序中,不会显示最新的帖子。我在ionViewDidEnter中调用该服务,我甚至尝试使用Angular中的NgZone强制更新视图。到目前为止还没有解决方案。 我也试过使用applicationRef.tick(),但也没有帮助。

当我禁用缓存时,它在浏览器中工作正常。然后我可以看到最新的帖子。但它在我的设备上不起作用,因为在缓存了第一个数据后没有显示新数据。

你知道如何解决这个问题吗?

这是我的打字稿文件,您可以在下面看到我的Ionic信息。

/**
* @description this is where the data loads from the service. This 
  event always fires. It is a way of stopping caching in the app.
 */
ionViewDidEnter() {
  this.zone.run(() => {
    this.loadItems();
});
}

 /**
  * @description loads all items
  */
 loadItems() {

// Create the loader
let loader = this.loadingController.create({
  content: "Getting data.."
});
loader.present();

// Get the most recent 100 posts
this.itemApi.getItems(100).then(data => {
  loader.dismiss();
  this.posts = data
  this.initializeItems();
});

}

/**
* @description set the new data equal to the items returned.
*/
 initializeItems() {
  // The data is reset to all items
  this.zone.run(() => {
    this.items = this.posts;
  });
 }

我的离子信息:

cli packages: 

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

全球套餐:

cordova (Cordova CLI) : 8.0.0

本地包裹:

@ionic/app-scripts : 1.3.7
Cordova Platforms  : android 6.4.0 ios 4.5.4
Ionic Framework    : ionic-angular 3.1.1

系统:

Node : v8.10.0
npm  : 5.6.0
OS   : macOS High Sierra

环境变量:

ANDROID_HOME : not set

0 个答案:

没有答案