在任何HTML页面中使用此脚本标签都会在页面加载时打开打印对话框,但在Angular 17中,这不会被渲染.

<script>window.onload = function(){ window.print(); };</script>
<div>This is a print page</div>

我也try 将这个JS代码添加到.ts文件中,但它出现了错误:

export class PrintComponent implements OnInit {
  constructor() { }
  ngOnInit(): void {
    onload='window.print()';
  }
}

错误:

print.component.ts:13:5 - error TS2322: Type '"window.print()"' is not assignable to type '((this: Window, ev: Event) => any) | null'.

13     onload='window.print()';

在Angular 17项目中,如何在页面加载时调用window.print?我到处寻找,但没有任何解决方案.

推荐答案

如果您有启用ssr的项目:

constructor() {
afterNextRender(() => {
  window.print();
})

}

如果您有仅限浏览器项目:

ngOnInit(): void {
  window.print();
}

Angular相关问答推荐

Angular 动画—淡出适用于DIV,不完全适用于子组件

停靠的Angular 应用程序的Nginx反向代理无法加载assets资源

以17角表示的自定义元素

Angular router-outlet 未渲染

如何使用带有17角的Swiper 11.0.5元素

Ng serve不工作,没有错误或消息来显示问题所在

Angular-每2个流式传输多个HTTP调用

使用指令的 Angular 自定义验证在 ng-change 中无法正常工作

根据环境变量动态加载Angular templateUrl

NX MFE Angular 模块联合无法访问远程微前端

显示 1 个数据而不是所有 ngFor - Angular 11

可观察的等待直到另一个可观察的值

过滤 ngfor Angular 的计数

尽管模型中的变量发生了变化,但Angular 视图没有更新

如何在 Angular 2 应用程序中配置不同的开发环境

错误 TS1086:无法在 Angular 9 的环境上下文中声明访问器

如何组合两个可观察到的结果?

使用 DomSanitizer 绕过安全性后,安全值必须使用 [property]=binding

Angular 2 http 没有得到

在Angular2中获取服务的域名