Ionic3 - this.NavCtrl.push()不起作用

时间:2017-12-29 07:31:49

标签: ionic-framework ionic2 navigation buttonclick

我试图点击按钮导航到另一个页面。

主页有两页以home.html为基础。     <button ion-button click="onclick()"> Go</button>

home.ts我已导入BasePage模块。

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { BasePage } from '../base/base';
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController) {

  }
onclick(){
  this.navCtrl.push(BasePage)
}
}

app.module.ts我已导入相同的BasePage

它没有重定向到页面。控制台上没有任何错误。我检查了很多网站。他们使用了正常工作的相同功能。 我正在使用angular3。

4 个答案:

答案 0 :(得分:3)

您的按钮代码看起来不正确click格式不正确,因此无法正确处理。

而不是

<button ion-button click="onclick()"> Go</button>

尝试(点击)

<button ion-button (click)="onclick()"> Go</button>

答案 1 :(得分:0)

当您想要在发生某事时触发某个功能时,您必须使用事件。在模板中,事件放在括号中。这就是David Dal在您的代码中修复的内容。

答案 2 :(得分:0)

在您的模板文件中,它应该是 -

<button ion-button (click)="onclick()"> Go</button>

在您的组件文件中您错过了分号。终止是任何编程语言的最佳实践。

onclick(){
    this.navCtrl.push(basePage);
}

最后一件事是在app.module.ts文件中导入BasePage

答案 3 :(得分:-1)

最好定义包含页面引用的类属性。 尝试在.ts文件中执行类似的操作。

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { BasePage } from '../base/base';
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  basePage: BasePage = BasePage;

  constructor(public navCtrl: NavController) {

  }

  onclick(){
    this.navCtrl.push(this.basePage);
  }
}

通过这种方式,您可以将页面引用到属性中。将该属性用作“导航器”。

顺便尝试在HTML中执行此操作:

<button ion-button (click)="onclick()">Some Button</button>

还要确保将您的BasePage添加到App Module文件,否则它将无效!

希望有所帮助;)

  

请注意,您可以直接在HTML按钮中使用[navPush]指令,而不是使用函数(如果您想要实现的结果是简单导航)。在这种情况下,只需创建我显示的属性,然后在HTML中创建此&lt; button ion-button [navPush] =“basePage”&gt;按钮名称&lt; /按钮&GT;它可以在不使用任何功能的情况下工作!