1

我不是第一次使用管道,但现在我正在尝试使用我在单独的文件夹“管道”中创建的安全管道,PipesModule如下所示
这是管道类:

安全管道.ts

    import { Pipe, PipeTransform } from '@angular/core';
    import { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';
    
    @Pipe( {
        name: 'safe'
    } )
    export class SafePipe implements PipeTransform {
    
        constructor ( protected sanitizer: DomSanitizer ) { }
    
        public transform ( url: any ) {
            return this.sanitizer.bypassSecurityTrustResourceUrl( url );
        }
    }

这是模块文件pipes.module.ts

    import { NgModule } from '@angular/core';
    import { CommonModule } from '@angular/common';
    import { SafePipe } from './safe.pipe';
    
    
    
    @NgModule( {
        declarations: [
            SafePipe
        ],
        exports: [
            SafePipe
        ],
        imports: [
            CommonModule
        ]
    } )
    export class PipesModule { }

我在要使用管道的组件模块中导入了 PipesModule,

    @NgModule( {
        declarations: [ GenerateContractComponent ],
        imports: [
            CommonModule,
            FormsModule,
            NgxMaskModule,
            PipesModule
        ]
    } )

然后在 HTML 中使用管道,如下所示:

    <iframe width="100%" style="height:-webkit-fill-available" [src]="pdfURL | safe" frameborder="0"></iframe>

但仍然得到错误

错误:未捕获(承诺):错误:NG0302:找不到“安全”管道!请问有人可以帮忙吗??

4

1 回答 1

1

我有类似的问题,我的解决方案是简单地重新启动服务器

如果上述方法不起作用,请关闭 IDE 并重新启动项目。这可能是缓存文件的问题

如果这不起作用,还请清除浏览器缓存并重新加载您的应用

从下面关于 Stackblitz 的演示中,您的方法是正确的并且应该有效

于 2021-01-04T12:02:30.653 回答