从服务中调用组件功能

时间:2019-04-01 11:19:25

标签: angular typescript angular-services angular-components

我正在尝试为我的应用创建文件上传组件。最后,当文件上传完成时,我想清除上传的文件,为此,我在文件上载器组件中编写了波纹管功能。

  clearFileList(){
    this.uploadedFiles=[]
  }

现在我想从服务中调用此函数,之后在服务的帮助下可以在其他组件中重用该方法。

我该怎么做。

1 个答案:

答案 0 :(得分:1)

从服务中调用组件功能不是最好的模式。我建议有所不同。服务应包含公共主题,组件应订阅该主题:

class Service {
  public stream$ = new Subject<any>();

  method() {
    this.stream$.next(...);
  }

}

class Component {
  constructor(private service: Service) {}

  onInit() {
    this.service.stream$.subscribe(data => {
      this.method(data);
    }
  }
  method() {
    // do stuff;
  }

}

从服务中,您可以调用method,这将调用组件方法。

当然,请记住有关退订的信息。