我需要从静态方法内部访问我的自定义http服务,例如:

import {Control} from 'angular2/common';
import {HttpService} from './http.service';

class UsernameValidator {
    static usernameExist(control: Control): Promise<ValidationResult> {
        ... /* Access my HTTPservice here */
    }
}

在这种情况下,如何访问服务?

最佳答案

另一种方法是返回函数。这样,此函数可以访问创建期间提供的HttpService实例:

class UsernameValidator {
  static createUsernameExist(http:HttpService) {
    return (control: Control) => {
      ... /* Access my HTTPservice here */
    }
  }
}

你可以这样使用它:
validator: UsernameValidator.createUsernameExist(this.httpService)

07-28 04:09