Angular Cli:组织家长活动

时间:2019-05-17 11:36:01

标签: angular typescript

我父母的工具表包含:

<router-outlet></router-outlet>

儿童包含图表。在父级上,我可以:全部隐藏,全部显示,隐藏一个,显示一个。

我创建了通信服务:

import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';


@Injectable({
  providedIn: 'root'
})
export class CommunicationService {

  constructor () { }

  private selectedTools = new Subject<any>();
  private changedTool = new Subject<any>();


  toolsEmitted$ = this.selectedTools.asObservable();
  toolEmitted$ = this.changedTool.asObservable();


  hideAllTools () {
    this.selectedTools.next({show: false, tools : []});
  }

  showAllTools (tools: string[]) {
    this.selectedTools.next({show: true, tools});
  }

  hideTool (tool: string) {
    this.changedTool.next({show: false, tool});
  }

  showTool (tool: string) {
    this.changedTool.next({show: true, tool});
  }
} 

结果我得到2个订阅:

this.subscription1 = this.communicationService.toolsEmitted$.subscribe(data => {
  if (data.show) {
    this.chart.show();
  } else {
    this.chart.hide();
  }
});

this.subscription2 = this.communicationService.toolEmitted$.subscribe(data => {
  if (data.show) {
    this.chart.show(data.tool);
  } else {
    this.chart.hide(data.tool);
  }
});

请您为最佳选择的组织提供建议吗?看来2个订阅不是一个好方法。

0 个答案:

没有答案