我有一个带有多个按钮的仪表板。为此,我将保存,删除,编辑,清除。在里面,我将有多个组件。例:
我的策略是按照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
}
}
有一种更好的方法来组织这段代码吗?
我从来没有这样做过,但我认为这样的事情可以很好地解决你的问题。用于定义动作的类型T的对象的rxjs主题。然后,其他对象(来自所有不同的服务)继承并实现基础对象的操作。所以每当一个物体进入这些服务时。你可以执行相同的操作,但结果会有所不同。
我认为你的组件中必须有一个方法,在你的服务中调用方法。我认为你可以为所有按钮创建一个服务。这里的例子:
服务:
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);
}
}