Angular4引用地图运算符内的服务

时间:2017-08-22 06:10:11

标签: angular typescript

我创建了一项服务:

@Injectable()
export class AppService {
   constructor(private _convertor: Convertor)

   foo() {
      a = ["1", "2", "3"]
      return a.map(this.blah)
   }

   blah(s: string): number {
     return this_.convertor.parseInt(s)
   }

}

然而,它一直说this没有被定义。我用map替换了我的for,效果很好。我也尝试使用_.map,这给了我相同的结果。 知道如何在地图上指定它应该使用的this吗?

2 个答案:

答案 0 :(得分:1)

当前上下文由于回调函数而丢失,从MDN,您可以通过将第二个arg传递给map函数来保留当前上下文。所以,

@Injectable()
export class AppService {
   constructor(private _convertor: Convertor)

   foo() {
      a = ["1", "2", "3"]
      return a.map(this.blah, this)
   }

   blah(s: string): number {
     return this._convertor.parseInt(s)
   }

}

也是this._convertor.parseInt(s)但不是this_.convertor.parseInt(s)

答案 1 :(得分:0)

试试这个。

print/cat/...