【问题标题】:navCtrl navigation to next page ionicnavCtrl 导航到下一页
【发布时间】:2017-11-16 13:36:04
【问题描述】:

我的代码有问题。无法从主页导航到例如关于页面。该应用程序位于离子框架中。这项技术是全新的。在控制台中没有警告和错误。 home.ts

import { Component } from '@angular/core';
import { NavController, IonicPage } from 'ionic-angular';
import { Auth } from '@ionic/cloud-angular';
import { User } from '@ionic/cloud-angular';
import { LoginPage } from '../login/login';
import { About } from '../about/about';
import { ChatPage } from '../chat/chat';

@IonicPage()
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  constructor(public navCtrl: NavController,  public auth: Auth, public user: User) {
    console.log(user);
  }

  logout() {
      this.auth.logout();
      this.navCtrl.setRoot(LoginPage);
    }

   about(){
      this.navCtrl.setRoot(About);
    }

    chat(){
      this.navCtrl.setRoot(ChatPage);
    }
}

home.html

<ion-header>
  <ion-navbar>
    <ion-title>
      Home
    </ion-title>
    <ion-buttons end>
      <button ion-button icon-only (click)="logout()">
        <ion-icon name="exit"></ion-icon>
      </button>
    </ion-buttons>
  </ion-navbar>
</ion-header>

<ion-content padding>
  <h2>Welcome back, {{ user.details.name }}</h2>
  <p>
    <button ion-button color="secondary" block>Something</button>
  </p>
  <p>
    <button ion-button color="secondary" block [navPush]="ChatPage">Chat</button>
  </p>
  <p>
    <button ion-button color="secondary" block [navPush]="About">About</button>
  </p>
</ion-content>

关于.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';

@IonicPage()
@Component({
  selector: 'page-about',
  templateUrl: 'about.html',
})
export class About {

  constructor(public navCtrl: NavController, public navParams: NavParams) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad About');
  }

}

关于.html

<ion-header>

  <ion-navbar>
    <ion-title>about</ion-title>
  </ion-navbar>

</ion-header>


<ion-content padding class="about">
  This is my super awesome about page.
</ion-content>

【问题讨论】:

    标签: html typescript ionic-framework controller ionic2


    【解决方案1】:

    一种可能且简单的解决方案是单击按钮时调用方法。当您在 home.ts 中定义 about() 方法时,现在在单击按钮时调用此方法。只需更新 home.html 中的代码

    <ion-header>
      <ion-navbar>
        <ion-title>
          Home
        </ion-title>
        <ion-buttons end>
          <button ion-button icon-only (click)="logout()">
            <ion-icon name="exit"></ion-icon>
          </button>
        </ion-buttons>
      </ion-navbar>
    </ion-header>
    
    <ion-content padding>
      <h2>Welcome back, {{ user.details.name }}</h2>
      <p>
        <button ion-button color="secondary" block>Something</button>
      </p>
      <p>
        <button ion-button color="secondary" block (click)="chat()">Chat</button>
      </p>
      <p>
        <button ion-button color="secondary" block (click)="about()">About</button>
      </p>
    </ion-content>
    

    【讨论】:

    • 谢谢!它有助于如何做复出点击主页?从约和聊天
    • @KarolinaBagrowska 发布后请不要扩展您的问题。如果您的问题已被回答,并且如果您需要在搜索中找不到的进一步帮助,请打开一个新问题。谢谢。
    • 回家。有2种方法。首先,您可以将它们推送到当前导航堆栈,而不是将页面和聊天页面设置为根页面。为此,在 about 和聊天方法 (home.ts) 中使用 this.navCtrl.push(About); 它会将您的 about 页面推送到当前导航堆栈,并且后退按钮将出现在 about 页面上。
    • 关于组件/页面的其他方式创建一个新按钮并在其单击时设置主页的引用,就像您在主页中所做的那样转到关于和聊天页面。然而,在当前导航堆栈上推送页面是个好方法。
    • @KarolinaBagrowska 如果答案解决了原始帖子的问题,请将其标记为已接受,以便将其关闭。您可以找到更多关于如何接受答案here 以及如何投票给答案here 的信息。
    猜你喜欢
    • 2016-10-09
    • 1970-01-01
    • 2021-03-29
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    相关资源
    最近更新 更多