角Primeng Singleton Services(确认,消息)在View

问题描述 投票:0回答:1

我有一个Angular V19.0应用程序,Primeng Toast和确认服务存在问题。我已经在app.module.ts

中导入的核心模块中提供了服务

但是,每当我注入这些服务时,我每次点击都会获得2个对话框或敬酒。另外,第一次点击未显示敬酒或确认对话框。

如果没有提供

key

属性,吐司组件也不起作用。
-----------------------HTML---------- <ng-container *ngIf="toastMessageKey | async as tKey"> <p-toast position="top-left" baseZIndex="999999" [key]="tKey" life="100000"/> </ng-container> ------------------------TS----------- this.toastMessageKey = this.messageService.messageObserver.pipe( filter((x) => x !== null && x !== undefined), map((t) => (<ToastMessageOptions>t).key ?? 'toast'), );

没有上面的代码,吐司消息甚至没有显示自我。
而且我什至尝试将代码复制到另一个具有相同结构(懒惰的模块等)的项目

它的工作就像一个魅力。

我不知道我在哪里犯了一个错误。我为此砸了头。它根本没有给我任何错误或任何错误。但是我发现的只是每次呼叫两次触发确认或吐司观察者。

------Layout service--- openToast(toast: ToastMessageOptions) { this.toastService.add(toast); }

问题可能是由于SSR的打开,它在服务器上打开一次,并且在浏览器上一次打开,解决方案是将逻辑包装在延期块中,以便仅在浏览器上执行。
@defer() { <ng-container *ngIf="toastMessageKey | async as tKey"> <p-toast position="top-left" baseZIndex="999999" [key]="tKey" life="100000"/> </ng-container> }
angular primeng toast confirm
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.