在IONIC中导入管道

时间:2018-01-28 13:02:43

标签: angular ionic-framework

我在页面中创建了一个value.pipe.ts文件。并在app.module中导入它,如:

import { SanitizeHtmlPipe } from '../pages/value.pipe';
@NgModule({
  declarations: [
    MyApp,
    HomePage,
    SanitizeHtmlPipe
  ],
  imports: [
    BrowserModule,
    IonicStorageModule.forRoot(),
    HttpModule,
    HttpClientModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    {provide: ErrorHandler,useClass: IonicErrorHandler},
    IonicStorageModule,Auth,
    ApiServiceProvider,
  ]
})
export class AppModule {}

我的管道文件是:

import { Pipe, PipeTransform } from "@angular/core";
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';

@Pipe({
  name: 'sanitizeHtml'
})
export class SanitizeHtmlPipe implements PipeTransform {

  constructor(private _sanitizer:DomSanitizer) {
  }

  transform(v:string):SafeHtml {
    return this._sanitizer.bypassSecurityTrustHtml(v);
  }
}

但现在当我运行我的代码时,我收到的错误是:

  

错误:意外的值'未定义'由模块宣布的AppModule'       在syntaxError(http://localhost:8100/build/vendor.js:80856:34)       在http://localhost:8100/build/vendor.js:95510:40       在Array.forEach()       在CompileMetadataResolver.getNgModuleMetadata(http://localhost:8100/build/vendor.js:95508:54)       在JitCompiler._loadModules(http://localhost:8100/build/vendor.js:113874:87)       在JitCompiler._compileModuleAndComponents(http://localhost:8100/build/vendor.js:113835:36)       在JitCompiler.compileModuleAsync(http://localhost:8100/build/vendor.js:113751:37)       at CompilerImpl.compileModuleAsync(http://localhost:8100/build/vendor.js:79692:49)       在PlatformRef.bootstrapModule(http://localhost:8100/build/vendor.js:5796:25)       在Object.229(http://localhost:8100/build/main.js:1689:109

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我建议你添加一个sharedModule来拥有所有常用的管道和提供程序

<强> Shared.Module.ts

@NgModule({
  imports: [
    // dep modules
  ],
  declarations: [ 
    SanitizeHtmlPipe
  ],
  exports: [
    SanitizeHtmlPipe
  ]
})
export class SharedModule {}

并在 app.module.ts 中使用它,因为suraj提到从提供商处删除 IonicStorageModule ,因为它应该在模块下导入。

@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    SharedModule,
    IonicStorageModule.forRoot(),
    HttpModule,
    HttpClientModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    {provide: ErrorHandler,useClass: IonicErrorHandler},
    Auth,
    ApiServiceProvider,
  ]
})
export class AppModule {}