use*_*344 6 primeng angular primeng-dialog
如果用户未经授权(状态 == 401),我想显示 PrimeNG 动态对话框。但如果我想打开该对话框,则会出现错误:
NullInjectorError: No provider for DialogService!
Run Code Online (Sandbox Code Playgroud)
我通过将 DialogService 添加到根模块提供程序解决了这个问题:
@NgModule({
declarations: [],
imports: [],
entryComponents: [],
providers: [
DialogService
]
...
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否是正确的方法,因为正如官方文档中所写,每个组件都应该有自己的DialogService提供者。但是因为我需要其他服务(UnauthorizedHttpInterceptor)中的 DialogService,所以我必须将 DialogService 包含到根提供程序列表中。那是对的吗?
每个其他组件都有自己的提供程序:
@Component({
templateUrl: './dynamicdialogdemo.html',
providers: [DialogService]
})
Run Code Online (Sandbox Code Playgroud)
将使用他自己的实例。
那么我的解决方案应该没有问题吧?如果是这样,将 DialogService 实例提供给拦截器的正确方法是什么?
我的主要目的是避免多个 DialogService 组件的冲突,以便成功打开/关闭多个对话框。
| 归档时间: |
|
| 查看次数: |
1535 次 |
| 最近记录: |