2016-05-10 62 views
1

我在与Angular2/Ionic2Angular2/Ionic2

如果我尝试使用下面的代码推到了新的一页网页间导航的一些实际问题的网页间导航一个错误,说明:

“推” 是不是一个函数

如果我尝试不同的技巧和尝试,并设置主页像这样根:

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); 
    } 
} 

我收到一个错误,指出:

没有定义“应用程序”

请有人能给我一些指点吗?在此先感谢

回答

0

我的想法是怎么了?是你不声明appnav作为类中的变量,所以当你将它们分配在构造this.appthis.nav实际上并不存在给你不确定的错误。

我看到两个选项来解决这个问题...

选项1

在构造函数中定义appnav参数publicprivate,这将自动在类中创建变量对你来说(这是处理导入类的常用选项)。一个例子是:

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

    constructor(public nav) { } 

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

选项2

定义变量在构造方法之前类(这是特别是在使用一个模型类自己的自定义变量多见)。这方面的一个例子是:

export class LoginPage { 
    customVariable: string; 

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

    constructor(public nav) { 
    this.customVariable = "test string"; 
    } 

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

希望这有助于你了解不同的用途。

+0

非常感谢Will,这是一个很大的帮助,非常感谢。 – George