我正计划为Angular 8+开发一个独立的角度服务,并且我一直在阅读如何使其可树状摇动。
IIUC all we need to do is this:
@Injectable({
providedIn: 'root',
useFactory: () => new Service('dependency'),
})
export class Service {
constructor(private dep: string) {
}
}
这告诉Angular如何构造服务。
这是我们需要做的吗?我看过其他this one use ModuleWithProviders
这样的NPM模块,如下所示:
export class Module {
static forRoot(): ModuleWithProviders {
return {
ngModule: Module,
providers: [
StripeScriptTag
],
}
}
我认为这不是必需的,因为providers
数组仍然没有描述如何实例化服务。
答案 0 :(得分:2)
您需要的只是
"variables": {
"certificateName": "[concat(parameters('certificatePrefixName'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"apiVersion": "2015-08-01",
"name": "[variables('certificateName')]",
"type": "Microsoft.Web/certificates",
"location": "[resourceGroup().location]",
"properties": {
"pfxBlob": "[parameters('certificatePfxBase64')]",
"password": "[parameters('certificatePfxPassword')]"
},
"tags": {
"displayName": "Certificate"
}
}
]
根目录中提供的服务可摇动树。如果它在根目录中提供,那么您将在整个应用程序中获得相同的单例实例。如果您希望跨模块的新服务实例而不是全局单例实例,则只需将其添加到providers数组。