类可以扩展服务并使用角度2中的新关键字进行实例化吗?

时间:2016-08-29 14:51:47

标签: angular typescript extends angular2-services angular2-http

嗨,我有像

这样的服务
async

我可以创建一个扩展服务的类吗? e.g。

@Injectable()
export class ParentService{

  constructor(private http:Http){}

  get(){this.http.get(...)}
}

并使用 new 关键字在

之类的组件内实例化
export class SomeClass extends ParentService {
  public name:string;
  constructor(name:string, private http:Http){
    super(http);
    this.name = name;
  }
}

我的想法是,对于每个新实例,我可以将字符串作为urlPath传递,并使用该实例从我的服务中调用泛型函数。谢谢!

1 个答案:

答案 0 :(得分:1)

如果您希望DI传递构造函数参数,则需要将实例化委托给Angulars DI。

你能做的是

export class Cmp{
  instance:any;
  constructor(http:Http){
    this.instance = new SomeClass('InstanceOne', http);
    this.instance.get();
  }
}

或者您可以提供一个字符串,并在创建新的@Inject('sometoken')时使用name来获取传入的SomeClass