首页 新闻 会员 周边 捐助

ng-zorrod-antd 从 15 升级到 19 后出现 NG0203 错误

0
悬赏园豆:30 [已解决问题] 浏览: 44次 解决于 2024-12-25 09:19

在园子的博客后台升级到 angular 19 的过程中,ng-zorrod-antd 从 15.10 升级到 19.0.0-beta.0

使用 ng-zorrod-antd 15.10 时,有下面的创建 NzPopoverDirective 实例的代码

const elemRef = view.element;
const popover = new NzPopoverDirective(
    elemRef,
    view,
    _resolver,
    _renderer,
    _noAnimation,
    _nzConfigService
);

ng-zorrod-antd 18 与 19 中 NzPopoverDirective 的构造函数都不支持参数,于是改成了下面的代码

const popover = new NzPopoverDirective();

部署后浏览器访问时控制台报错

Uncaught _: NG0203

请问如何解决这个问题?

问题补充:

改为 inject 也是同样的报错

const popover = inject(NzPopoverDirective);

这个错误码对应的错误消息对应的应该是下面的消息,但不知道 Chrome 控制台为什么只显示 NG0203

inject() must be called from an injection context

dudu的主页 dudu | 高人七级 | 园豆:27830
提问于:2024-12-15 19:00
< > 人人可用的开源BI工具
分享
最佳答案
0

放在 runInInjectionContext 中 inject 可以解决 NG0203 问题

private readonly _environmentInjector = inject(EnvironmentInjector);
runInInjectionContext(this._environmentInjector, () => {
    this._nzPopover = inject(NzPopoverDirective);
});
dudu | 高人七级 |园豆:27830 | 2024-12-17 17:55
dudu | 园豆:27830 (高人七级) | 2024-12-17 17:56

需要改为

private readonly _injector = inject(Injector);
dudu | 园豆:27830 (高人七级) | 2024-12-25 09:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册
Top