【问题标题】:access button of another component which is on same level同一级别的另一个组件的访问按钮
【发布时间】:2018-08-21 04:52:49
【问题描述】:

当我通过 websocket 接收一些值时,我在组件 1 中使用 websocket 我想更改组件 2 中的断开连接按钮的状态。我为此使用事件发射器,但它不起作用

【问题讨论】:

  • 让我解释一下这个场景,当我插入一个 USB 时,我正在制作一个应用程序,我在我的 websocket 中收到一个位于不同组件中的值,用户可以连接到该硬件,并且当硬件连接并且用户插入时拔出 USB 然后连接按钮应更改为连接

标签: angular angular-material angular5 angular2-template angular-ui


【解决方案1】:

您可以使用主题/行为主题来实现。

服务:

public subject: BehaviorSubject = new BehaviorSubject<any>('');
public subject$ = subject.asObservable();

组件 1:

service.subject.next('change');

组件 2:

service.subject$.subscribe((value)=>{
  if(value){

  }
});

【讨论】:

  • 我试过了,但它没有继续订阅声明
  • 它不起作用,这两个组件在不同的模块中
【解决方案2】:

像这样使用主题

在 service.ts 中:

subject = new Subject<any>();

在component1.ts中:

commonService.subject.next('change');

并在component2.ts订阅更改事件

ngOnInit() {

    this.commonService.subject.subscribe(res => {
            this.some_var = res;
    });
}

【讨论】:

    猜你喜欢
    • 2014-10-13
    • 2013-03-28
    • 2017-08-15
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 2015-02-05
    相关资源
    最近更新 更多