【发布时间】:2020-02-26 21:18:44
【问题描述】:
我为这个问题找到了很多不同的答案,我一直在寻找最佳实践。
我创建了一个需要多个实例的服务。该服务将一些数据作为输入并从中创建一个 csv。
嗯,我用一个非常标准的可注入服务尝试了这个。
@Injectable
export class ExportCsv {
public constructor(Data: any) {
// Do something and spit out csv
}
}
问题是,如果我在我的组件中提供这个,数据显然不会重置,基本上只是附加,因为我的服务只有一个实例。所以,如果这个组件创建了多个 csv,每个 csv 都会有一些不应该存在的数据。
我找到了一些解决方案: - 创建某种工厂 - 使服务不可注入并且不提供它。所以它将像标准类一样处理,每次我使用它时,我都必须创建这个类的一个实例(新的 ExportCsv) - 只是不要把它称为服务,基本上和“不可注入”服务一样
对于我的问题是否有某种最佳实践? 不通过提供者提供且不可注入的服务真的仍然是服务吗?
【问题讨论】:
标签: angular typescript angular2-services