在 Ionic 5 中动态更改侧边菜单项



我正在将一个项目从 ionic 3.2 迁移到 5.14,但我在使用可观察量而不是事件时遇到了问题。

在原始代码中,用户登录后,我通过事件更改了侧边菜单的名称和图像:

app.component.ts

this.events.publish('user:login', this.nomePrimeiro, Date.now());
this.events.publish('image:login', this.imagem, Date.now());

app.component.ts上,我写了这个:

events.subscribe('user:login', (user, time) => {
Global.nomePrimeiro = user;
});
events.subscribe('image:login', (image, time) => {
Global.imagem = image;
});

如何为可观察量更改此设置? 我需要服务吗?

创建事件服务。 在 EventService.ts 中:

export class EventService {
        private dataObserved = new BehaviorSubject<any>('');
        currentEvent = this.dataObserved.asObservable();
        constructo(){}
        
        publish(param):void {
          this.dataObserved.next(param);
        }
}

要从示例页面 1 发布事件:

constructor(public eventService:EventService){}
    updatePost(){
    this.eventService.publish('post:updated');
// or 
this.eventService.publish({name: 'postupdate', value: 'value you need to pass'});
} 

在第 2 页:

constructor(public eventService:EventService){
      this.eventService.currentEvent.subscribe(data=>{
     // here you can get the data or do whatever you want or data.name or data.value
    
    });
}

相关内容

  • 没有找到相关文章

最新更新