如何在离子2中将一页移动到另一页?

时间:2016-10-25 23:26:11

标签: angular ionic2

我正在尝试使用ionic 2从一个页面导航到另一个页面。

我正在学习 https://ionicframework.com/docs/v2/api/navigation/NavController/

export class ApiDemoPage {
  constructor(public navCtrl: NavController){
    alert('contr');
  }
  clickMe(){
    alert('---')
  }
}


@Component({
  template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
  root = ApiDemoPage;
}

@Component({
  template: '<p>hello</p>'
})
export class secondPage {
}

这是我的代码

https://plnkr.co/edit/5eDjTOtNu46liZHiuHdG?p=preview

获取此错误 (SystemJS)错误:无法解析ApiDemoPage的所有参数:(?)。(...)

3 个答案:

答案 0 :(得分:6)

您希望使用离子2从一个页面导航到另一个页面。它很简单。您应该使用NavController并按照步骤进行操作。

  • 创建两个页面&#34; StartPage&#34;和&#34; OtherPage&#34;。
  • 在文件StartPage.ts上,导入页面并将NavController注入到构造函数中,并将事件导航到其他页面。

例如:

@Component({
   template: `
   <ion-header>
     <ion-navbar>
       <ion-title>Login</ion-title>
     </ion-navbar>
   </ion-header>

   <ion-content>
     <button ion-button (click)="pushPage()">
       Go to OtherPage
     </button>
   </ion-content>
   `
})
 export class StartPage {
  constructor(public navCtrl: NavController) {
  }

  pushPage(){
    // push another page on to the navigation stack
    // causing the nav controller to transition to the new page
    // optional data can also be passed to the pushed page.
    this.navCtrl.push(OtherPage);
  }
}

振作!

答案 1 :(得分:1)

创建新页面使用语法

ionic g page FirstPage

此命令在包含html,scss和ts文件的页面中创建FirstPage文件夹

之后在app.module.ts文件中以及在声明和条目组件中导入此页面

@NgModule({
  declarations: [
    MyApp,
    HelloIonicPage,
    ItemDetailsPage,
    ListPage,
    FirstPage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HelloIonicPage,
    ItemDetailsPage,
    ListPage,
    FirstPage
  ]

然后导入navcontroller并在filename.ts文件中创建页面(.ts文件,您要在另一页上移动)并创建构造函数

import { NavController } from 'ionic-angular';
import { FirstPage} from '../first-page/first - page';

constructor(public nav:NavController){

}

然后创建一个函数,该函数使用push方法导航到联系页面。

nextPage()
{
this.nav.push(FirstPage);
}

在filename.html调用函数中的ANd

<button ion-button color="secondary" (click)="nextPage()"> My First Page </button>

答案 2 :(得分:0)

我怀疑您对alert的使用不正确。

正确的方式:(https://ionicframework.com/docs/v2/components/#alert

import { AlertController } from 'ionic-angular';

export class MyPage {
  constructor(public alertCtrl: AlertController) {
}

showAlert() {
    let alert = this.alertCtrl.create({
      title: 'New Friend!',
      subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
      buttons: ['OK']
    });
    alert.present();
  }

但另一种只需执行快速检查的方法就是使用console.log("Enter ApiDemoPage");