【问题标题】:Ionic & Angular - Reusable 'next page' buttonIonic & Angular - 可重复使用的“下一页”按钮
【发布时间】:2018-07-01 01:59:24
【问题描述】:

我正在使用 Angular 和 Ionic 3 构建游戏,由于游戏有很多页面/视图,我想避免在我有按钮的页面的 ts 文件中编写相同的代码。

我的问题如下,是否可以创建一个“可重用”按钮将当前视图移动到另一个视图?我所说的“可重用”是在 app.ts 中声明按钮单击功能,并从 HTML 中动态更改目标页面。

到目前为止我做了什么:

在 home.html 中

<button ion-button color="light" (click)="moveToPage(gameSettings)">One Player</button>

注意: 我想去的页面类是“gameSetting”,这是我在 /pages/game-settings/ 中的项目的一部分

在 app.ts 中

constructor(public navCtrl: NavController, public navParams: NavParams) {
    moveToPage(pageName: String)
    {
        this.navCtrl.push(pageName);
    }
}

很遗憾,这不起作用!发生的情况是 HTML 将“pageName”作为具有undefined 类型的变量传递,即它会引发错误。 Ionic 的 navCtrl 页面仅通过 this.navCtrl.push() 函数中的页面名称来解释如何移动到另一个页面。 https://ionicframework.com/docs/api/navigation/NavController/

我们将不胜感激有关此行为的任何帮助。

【问题讨论】:

  • HTML 中的 pageName 变量是什么?我的意思是,你在哪里给它一个价值?
  • 公平点,我现在将更新 HTML 文件以消除混乱。我想要做的是在 HTML 中传递我想去的页面的名称。
  • @GianlucaParis,您之前的回答是正确的,在尝试完成 plunker 时,我修复了代码中的错字,所以您确实回答了我的问题。欢迎在下方添加您的答案
  • 谢谢,我又添加了我的答案:)

标签: javascript angular ionic3


【解决方案1】:

您只需将(click)="moveToPage(gameSettings)" 更改为(click)="moveToPage('gameSettings')"。只是错过了''

【讨论】:

  • 这实际上有帮助,但现在我收到以下错误:Uncaught (in promise): invalid link: gameSettings。仅出于调试目的,我将导航功能更改为 this.navCtrl.push(gameSettings);它有效......我不知道它为什么现在坏了
  • 你能用 plunker 重现你的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 2018-04-22
  • 2016-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多