angular - 在组件中使用动态服务
问题描述
我需要在两个不同的模块中使用一个组件,该组件正在使用具有特定状态的服务。该组件还具有使用相同服务的子组件。我需要服务的两个实例,因为我不希望模块 1 中的组件中的操作影响模块 2 中服务的状态。我当前的解决方案是将服务注入组件装饰器中,并通过该范围将服务注入组件实例。我将此特定实例作为@input
字段传递给子组件。
有更好的解决方案吗?
解决方案
我会创建一个抽象类并在组件中扩展它,我会为每个页面创建新的组合。
export abstract class Base{
constructor(protected service:any){}
}
export class Comp1 extends Base{
constructor(protected service: Service1){
super(service);
}
}
export class Comp2 extends Base{
constructor(protected service: Service2){
super(service);
}
}
这样,您只需编写一次代码,并且非常灵活地覆盖任何内容以防万一。
推荐阅读
- scala - Spark 写入配置单元作为 ORC 错误:路径不是文件
- powershell - 如何使用 Powershell 更改 Windows 10 中的电源计划并在长脚本后恢复为原始设置?
- android - 如何使用 Dagger2 for Android 提供 Room Dao 依赖项?
- python - 为什么我无法使用我的 Keras LSTM 模型进行预测?
- prerender - Stenciljs 添加2页后,预渲染卡住了
- c# - 手动删除迁移并在 ef core 中以相同名称再次添加后出现重复属性错误
- r - 如何将参考线添加到使用 plot.rlmerMod 生成的正态 QQ 与随机效应图?
- sql-server - 是否可以组合视图和存储过程中的列?
- xcode - 当用户关闭主应用程序窗口时,没有菜单项可以重新打开它,Xcode,MacOs 应用程序
- ios - 无法从 UITest 中的 CollectionView 元素访问单元格