从服务调用组件功能

问题描述 投票:0回答:1

我正在尝试为我的应用程序创建一个文件上传组件。当文件上传完成时我想要清除上传的文件,因为我在文件up-loader组件中编写了bellow函数。

  clearFileList(){
    this.uploadedFiles=[]
  }

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

我该怎么做呢。

angular typescript angular-services angular-components
1个回答
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,它将调用组件方法。

当然还记得取消订阅。

© www.soinside.com 2019 - 2024. All rights reserved.