ionViewLoaded没有被调用

时间:2016-10-31 09:52:41

标签: angular typescript ionic2

我试图使用此处显示的Page Life Cycle Events。我试图使用ionViewDidLoad,但它并没有为我开火。我创建了一个plunkr,以尽可能简单的方式表达我的例子。我在ionViewDidLoad内有一个日志语句,但它没有被解雇。如果您查看page1.ts中的home.tsplunkr,您会看到日志声明。

每个文件的基本代码是:

import { NavController } from 'ionic-angular/index';
import { Page1 } from 'page1.ts'
import { Component } from "@angular/core";


@Component({
  templateUrl:"home.html"
})
export class HomePage {

  greeting: string;

  constructor(private nav: NavController) {

    }

    ionViewDidLoad(){
      console.log('home.ts view initialized');
  }

    goToPage1() {
      this.nav.push(Page1);
    }


}

在我自己的代码中,我每次都调用API并将其触发,因此我需要一个生命周期钩子,以便我

2 个答案:

答案 0 :(得分:2)

我认为使用您需要的Ionic特定生命周期事件来使用NavComponent推送视图。

我将ionViewDidLoad()替换为ngOnInit(),并按预期启动了控制台命令。

http://ionicframework.com/docs/v2/api/navigation/NavController/

答案 1 :(得分:2)

我认为,由于您的网页是标签页,因此生命周期事件的工作方式与普通网页的工作方式不同。如果每次选择选项卡时都需要执行某些操作(例如从服务器获取数据),请检查Ionic docs的this part

  

有时您可能想要调用方法而不是导航到新方法   页。 您可以使用(ionSelect)事件来调用类上的方法   选择标签时。以下是呈现模态的示例   来自其中一个标签。

<ion-tabs>
  <ion-tab (ionSelect)="getData()"></ion-tab>
</ion-tabs>

并且

export class Tabs {
  constructor(...) {

  }

  public getData() {
    // Awesome code doing awesome things...
  }
}

因此,每次选择标签时,您都可以使用(ionSelect)="yourMethod()"来调用该API。