我有一个带有多个按钮的仪表板。为此,我将保存,删除,编辑,清除。在内部,我将有多个组成部分。示例:
-grandchild1
-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
}
}
有更好的方法来组织此代码吗?
答案 0 :(得分:0)
我从未做过,但是我可以认为类似这样的解决方案可以很好地解决您的问题。类型为T的对象的rxjs主题,它定义一个动作。然后其他对象(来自所有不同的服务)将继承并实现基础对象的操作。因此,只要有对象从这些服务中传入。您可以执行相同的操作,但结果会有所不同。
答案 1 :(得分: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);
}
}