如何将依赖项(如服务)注入angular2管道?

import {Pipe, PipeTransform} from 'angular2/core';
import {MyService} from './service';

//How i am injecting MyService to the pipe?

@Pipe({name: 'exponentialStrength'})
export class ExponentialStrengthPipe implements PipeTransform {
  transform(value:number, args:string[]) : any {
    return Math.pow(value, parseInt(args[0] || '1', 10));
  }
}

推荐答案

您可以像这样在构造函数中注入依赖项:

export class ExponentialStrengthPipe implements PipeTransform {

  constructor(public testService: TestService) {

  }

  transform(value:number, args:string[]) : any {
    // you can access this.testService here
    return Math.pow(value, parseInt(args[0] || '1', 10));
  }
}

别忘了确保将此依赖项添加到应用程序模块:

@NgModule({
    declarations: [...],
    imports: [...],
    providers: [..., TestService],
    bootstrap: [AppComponent],
}

Typescript相关问答推荐

更新:Typescript实用程序函数合并对象键路径

JS Redux Devtools扩展不工作

更新为Angular 17后的可选链运算符&?&问题

在嵌套属性中使用Required

MatTool提示在角垫工作台中不起作用

使用2个派生类作为WeakMap的键

为什么我在这个重载函数中需要`as any`?

如何正确调用创建的类型?

类型脚本-处理值或返回值的函数

使用或属性编写无限嵌套的接口

为什么在泛型方法中解析此promise 时会出现类型错误?

如何使用TypeScrip在EXPO路由链路组件中使用动态路由?

带有';的类型脚本嵌套对象可选属性错误满足';

TypeScript:如何使用泛型和子类型创建泛型默认函数?

如何键入';v型';

我应该使用服务方法(依赖于可观察的)在组件中进行计算吗?

覆盖高阶组件中的 prop 时的泛型推理

React HashRouter,单击导航栏时页面重新加载出现问题

基于可选参数的动态类型泛型类型

const nav: typechecking = useNavigation() 和 const nav = useNavigation() 之间有什么区别?