Angular 6 服务从方法内部添加新实例

Angular 6 Service adding new instance from inside the method

我有一个看起来像这样的服务:

export class myService {

  view1 = new Viewer();

  constructor() { }


  viewit(targetId, param2, param3) {

    this.view1.initialize(document.getElementById(targetId));

    this.view1.load(param2, param3).then(pco => {
      // do stuff
    })
    .catch(err => console.error(err));
  }

然后从组件中调用它:

this.myService.viewit('targetId', 'param2 here', 'param3 here');

如何将 view1 = new Viewer(); 传递或定义为我需要的任何名称,而不必在服务中预先定义它?

以下情况如何:

为您服务:

export class myService {

  constructor() { }


  viewit(targetId, param2, param3, view: Viewer) {

    view.initialize(document.getElementById(targetId));

    view.load(param2, param3).then(pco => {
      // do stuff
    })
    .catch(err => console.error(err));
  }

并在你的组件中匹配它:

const view = new Viewer()

this.myService.viewit('targetId', 'param2 here', 'param3 here', view);