0

堆栈闪电战代码

我正在开发一个角度应用程序来导出 PDF,但在导出的 PDF 中看不到数据值。我的方法:我有2个组件(登录,主页),在登录组件中创建了一个按钮(导出),它将用户导航到主页组件,并且在ViewInit之后它将生成pdf。我在 ngAfterViewInit() 生命周期钩子中编写了 pdf 生成代码。当我尝试等待响应时,它不起作用。

我尝试了以下两种方法,home.component.ts但仍然没有任何效果

ngAfterViewInit(): void {
    this.fetchUserData().then(() => {
      this.generatepdf();
      this.router.navigateByUrl('login');
    });
  }


async ngAfterViewInit(): void {
    await this.fetchUserData();
    this.generatepdf();
    this.router.navigateByUrl('login');

}

有什么方法可以等待结果并生成 PDF 吗?

预期结果:等待/获取的响应应出现在生成的 PDF 上:)

4

2 回答 2

1

您的 pdf 文件是在执行更改检测之前生成的。注入private cdr: ChangeDetectorRef你的构造函数并this.cdr.detectChanges()在你设置后调用this.users

分叉的堆栈闪电战

于 2021-06-16T07:53:13.870 回答
0

是的,您可以使用以下async/await模式:

async ngAfterViewInit(): Promise<void> {
    await this.fetchUserData();
    this.generatepdf();
    this.router.navigateByUrl('login');

}

演示:https ://stackblitz.com/edit/jspdf-final-nwesmc?file=app%2Fviews%2Fhome%2Fhome.component.ts

于 2021-06-16T04:37:31.483 回答