我想在名为Translation.ts
的Pipe中使用名为TranslatePipe.ts
的Provider和returnResult函数。 Translation.ts是
@Injectable()
export class TranslationProvider
constructor() { }
getResult(value) { returns something ; }
}
和TranslatePipe.ts以
的形式给出@Pipe({
name: 'translation',
})
export class TranslationPipe implements PipeTransform {
constructor(public translateService: TranslationProvider) {
}
transform(value: string, ...args) {
return this.translateService.getResult(value);
}
我的项目是Ionic 3,我使用Lazy Loading。我的页面是ExamplePage 在ExamplePage.html中,我想将管道用作{{'something'|翻译}}
和example.ts是
@IonicPage()
@Component({
selector: 'example',
templateUrl: 'example.html',
})
export class ExamplePage {
constructor(public translate: TranslationProvider) { }
}
app.module是那样的
@NgModule({
declarations: [
TranslatePipe,
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot()
],
bootstrap: [IonicApp],
entryComponents: [ .. ],
providers: [
{provide: ErrorHandler, useClass: IonicErrorHandler},
TranslationProvider
]
})
有一些与此主题相关的内容,但它们不起作用,例如
我尝试修改example.module,我添加了Provider和Pipe,但它没有用。 你能给我一些关于解决方案的建议吗?
答案 0 :(得分:1)
在 app.module.ts 或 example.module.ts 中包含提供者和管道,具体取决于您是否要使用更多页面或仅在示例页面中,而不是两者。
您需要将它们添加到同一模块中。
let eventID = Event.id
let eventName = Event.name
let aValue = Constants.someValue
let notification = NotificationKey.welcome