首页 新闻 会员 周边 捐助

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

0
悬赏园豆:30 [待解决问题]

在园子的博客后台升级到 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 | 高人七级 | 园豆:29618
提问于:2024-12-15 19:00
< >
分享
所有回答(1)
0

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

private readonly _environmentInjector = inject(EnvironmentInjector);
runInInjectionContext(this._environmentInjector, () => {
    this._nzPopover = inject(NzPopoverDirective);
});
dudu | 园豆:29618 (高人七级) | 2024-12-17 17:55
支持(0) 反对(0) dudu | 园豆:29618 (高人七级) | 2024-12-17 17:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册