离子后退按钮不会动态更改文本

时间:2019-02-25 10:04:00

标签: ionic-framework ionic3

使用config设置后退按钮文本后,
它不会立即在导航栏中反映出来。
必须弹出并再次推送页面。

游乐场:
https://stackblitz.com/edit/backbuttonbug
您可以在联系页面上看到
设置后退按钮文本不会反映在自身页面中,甚至不会反映在其他导航堆栈中

代码:
前一页:

export class AboutPage {  
  constructor(public navCtrl: NavController) {}

  contact() {  
    this.navCtrl.push(ContactPage);   
  }   
}

下一页:

export class ContactPage {  
  constructor(public navCtrl: NavController,
    public config: Config) {}

  toChinese() {
    this.config.set("backButtonText", '返回');
  }

  toEnglish() {
    this.config.set("backButtonText", 'back');
  }
}

<ion-header>
  <ion-navbar>
    <ion-title>
      Contact
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content>
  <button ion-button (tap)="toChinese()">toChinese</button>
  <button ion-button (tap)="toEnglish()">toEnglish</button>
</ion-content>  

我怀疑这是一个错误,并打开了一个问题:
https://github.com/ionic-team/ionic-v3/issues/976
并找到另一个类似的问题:
https://github.com/ionic-team/ionic/issues/7043

是离子错误/我的程序错误吗?
希望能看到建议

1 个答案:

答案 0 :(得分:1)

您尚未添加任何代码,因此我不确定您已经尝试过什么,但是请尝试以下操作:

import { ViewController } from 'ionic-angular';

...

  ionViewDidEnter() {
    this.viewCtrl.setBackButtonText('Some dynamic button text');
  }

修改

对不起,您没有看到您的Stackblitz示例,这可行:

import { Component } from '@angular/core';
import { NavController, Config, ViewController } from 'ionic-angular';

@Component({
  selector: 'page-contact',
  templateUrl: 'contact.html'
})
export class ContactPage {

  constructor(public navCtrl: NavController,
    public config: Config, 
    private viewCtrl: ViewController) {

  }

  toChinese() {
    this.viewCtrl.setBackButtonText('返回');
  }

  toEnglish() {
    this.viewCtrl.setBackButtonText('Back');
  }

}