始终检查组件中调用的服务 - Angular 6

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

我有一个带有多个按钮的仪表板。为此,我将保存,删除,编辑,清除。在里面,我将有多个组件。例:

  • 仪表板 Child1 -grandchild1 Child2 -grandchild1 -grandchild2

我的策略是按照SRP为每个功能创建一个服务。

 create.service.ts
    delete.service.ts
    clear.service.ts
    edit.service.ts

我的问题是我将永远在孙子组件上制定条件。

例:

component GrandChild1

ngOnInit(){

if(isClearService()){
 //do something
}
else if(isCreateService()){
 //do something
}
else if(isDeleteService()){
 //do something
}

}

有一种更好的方法来组织这段代码吗?

angular
2个回答
0
投票

我从来没有这样做过,但我认为这样的事情可以很好地解决你的问题。用于定义动作的类型T的对象的rxjs主题。然后,其他对象(来自所有不同的服务)继承并实现基础对象的操作。所以每当一个物体进入这些服务时。你可以执行相同的操作,但结果会有所不同。


0
投票

我认为你的组件中必须有一个方法,在你的服务中调用方法。我认为你可以为所有按钮创建一个服务。这里的例子:

服务:

export class ChService {
  delete(id: number) {
    //do something
  }
}

零件

import { ExampleService } from './services/ex.service';
export class AppComponent implements OnInit, OnDestroy {
  constructor(public ex: ExampleService) {}
  delete(id: number) {
    // do something
    this.ex.delete(id);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.