我正在 Angular 项目中工作来生成 pdf。 在这里,我使用
<app-pagedesign>
作为 <app-root>
的子组件,其中产品列表在此处提交。提交表格后会生成 pdf 文件。
一切正常。但是,当我单击“联系”并返回“产品”链接时,会生成 pdf 文件,而无需提供任何输入。 IE。它采用之前提交的值。
我认为这是由于子组件的初始化造成的。但我无法解决这个问题。有人可以帮我解决这个问题吗?
我的 stackblitz 链接是 https://stackblitz.com/github/reegan2024/mygithubrepo?file=README.md
不要使用
BehaviorSubject
,而是选择 Subject
。
区别在于,产品组件被破坏(导航到联系人),当返回产品组件时,
ngOnInit
会触发。
在此,我们订阅了
BehaviorSubject
,与 Subject
相比,其特殊之处在于它在最初订阅时触发。因此,当产品组件初始化时,会触发打印代码。
这不会第一次发生,因为
BehaviorSubject
的服务值在屏幕加载时为空字符串,并且 if 条件阻止打印,但是在使用 product component
设置并再次访问它时,它有一个值并执行代码,因此是错误。
export class PdfcontentService {
constructor() {}
public pdfContentSource = new Subject<any>(); // <- changed here!