我在使用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”未定义
请有人给我指点一下吗?提前致谢
答案 0 :(得分:0)
我认为出错的是您没有将app
和nav
声明为类中的变量,因此当您在构造函数this.app
和{{1}中分配它们时实际上并不存在给你未定义的错误。
我看到两种方法来解决这个问题......
选项1
在构造函数中将this.nav
和app
参数定义为nav
或public
,这将自动为您创建类中的变量(这是常见选项)在处理导入的类时)。一个例子是:
private
选项2
在构造函数方法之前在类中定义变量(这对于您自己的自定义变量更常见,尤其是使用模型类)。这方面的一个例子是:
export class LoginPage {
static get parameters() {
return [[NavController]];
}
constructor(public nav) { }
goHome() {
this.nav.push(HomePage);
}
}
希望这有助于您理解不同的用途。