Angular2 / Ionic2在页面之间导航

时间:2016-05-10 08:09:32

标签: angular ionic2

我在使用Angular2 / Ionic2的页面之间导航时遇到了一些实际问题

如果我尝试使用以下代码推送到新页面:

import {Page, NavController} from 'ionic-angular';
import {HomePage} from '../home/home';

@Page({
  templateUrl: 'build/pages/login/login.html'
})

export class LoginPage {
  static get parameters() {
    return [[NavController]];
  }

  constructor(nav) {
    this.nav = nav;
  }

  goHome() {
    this.nav.push(HomePage);
  }
}

我收到错误说明:

  

“推”不是一个功能

如果我尝试不同的机智并尝试将主页设置为根目录,那么:

import {IonicApp, Page, NavController} from 'ionic-angular';
import {HomePage} from '../home/home';

@Page({
  templateUrl: 'build/pages/login/login.html'
})
export class LoginPage {
  static get parameters() {
    return [[IonicApp], [NavController]];
  }

  constructor(app, nav) {
    this.app = app;
    this.nav = nav;
  }

  goHome() {
    let nav = this.app.getComponent('nav');
    nav.setRoot(HomePage);
  }
}

我收到错误说明:

  

“app”未定义

请有人给我指点一下吗?提前致谢

1 个答案:

答案 0 :(得分:0)

我认为出错的是您没有将appnav声明为类中的变量,因此当您在构造函数this.app和{{1}中分配它们时实际上并不存在给你未定义的错误。

我看到两种方法来解决这个问题......

选项1

在构造函数中将this.navapp参数定义为navpublic,这将自动为您创建类中的变量(这是常见选项)在处理导入的类时)。一个例子是:

private

选项2

在构造函数方法之前在类中定义变量(这对于您自己的自定义变量更常见,尤其是使用模型类)。这方面的一个例子是:

export class LoginPage {
  static get parameters() {
    return [[NavController]];
  }

  constructor(public nav) { }

  goHome() {
    this.nav.push(HomePage);
  }
}

希望这有助于您理解不同的用途。