如何在 ionic2-angular2 中动态切换菜单的一侧?

Posted

技术标签:

【中文标题】如何在 ionic2-angular2 中动态切换菜单的一侧?【英文标题】:how can i switch the side of a menu dynamically in ionic2-angular2? 【发布时间】:2017-05-10 15:07:08 【问题描述】:

我在类中使用带有 sideMenu = left 或 right 的 ion-menu,当我们改变语言时它会改变。 sideMenu 变量发生了变化,但我不知道为什么侧面菜单没有。

<ion-menu [content]="mifonMenu"
          [side]="sideMenu"
          >

我也尝试了另一种语法:[attr.side]="isRtl?'right':'left'"

它可以工作,但是当我将侧边菜单更改为右侧时:并且我打开菜单:它开始从左端到右侧,当我关闭它时:它执行相反的操作。 但如果我添加 type="push" 它不起作用。

希望任何人都可以帮助我。

【问题讨论】:

【参考方案1】:

尚不支持动态切换侧边菜单(存在一些与此相关的未解决问题),但您可以通过添加两个侧边菜单来实现相同的效果,一个在右侧,一个在左侧

<ion-menu [content]="mifonMenu" id="left-menu" side="left">...</ion-menu>

<ion-menu [content]="mifonMenu" id="right-menu" side="right">...</ion-menu>

然后在代码中,根据选择的语言启用其中一个:

import  MenuController, ...';

@Component(
    templateUrl: 'app.html'
)
export class MyApp 

    constructor(private menuCtrl: MenuController, ...) 

    public yourMethod(): void 
        if (this.selectedLanguage.rtl) 
            this.menuCtrl.enable(true, 'right-menu');
            this.menuCtrl.enable(false, 'left-menu');
         else 
            this.menuCtrl.enable(false, 'right-menu');
            this.menuCtrl.enable(true, 'left-menu');
        
    

【讨论】:

是的,我知道这种方法,但我不想复制我的代码。就是这样,但最后如果我找不到解决方案,我会这样做。反正 。感谢您的回复:) 是的,我明白,但似乎是目前唯一的方法。您可以在 this git issue 和所有与 rtl 相关的问题 here 中关注此功能的状态。

以上是关于如何在 ionic2-angular2 中动态切换菜单的一侧?的主要内容,如果未能解决你的问题,请参考以下文章

Ant design v4中如何动态切换主题?

在 viewDidLoad 中使用动态颜色如何自动切换深色模式的颜色?

python+selenium:iframe框架中动态id如何切换

如何在 Spring Security 中动态切换应用程序上下文?

HTML网页设计中可自切换的动态图片框如何制作?

如何在不重新编译的情况下在 .NET 中动态切换 Web 服务地址?