class 可以扩展服务并在 angular 2 中用 new 关键字实例化吗?
can a class extend a service and be instantiated with new keyword in angular 2?
你好,我有一个类似的服务
@Injectable()
export class ParentService{
constructor(private http:Http){}
get(){this.http.get(...)}
}
我可以创建一个扩展服务的 class 吗?例如
export class SomeClass extends ParentService {
public name:string;
constructor(name:string, private http:Http){
super(http);
this.name = name;
}
}
并使用 new 关键字在组件内部实例化,例如
export class Cmp{
instance:any;
constructor(){
this.instance = new SomeClass('InstanceOne', ?? )
this.instance.get();
}
}
我的想法是,对于每个新实例,我都可以将一个字符串作为 urlPath 传递,并使用该实例从我的服务中调用通用函数。谢谢!
如果你想让DI传递一个构造函数参数,那么你需要将实例化委托给Angulars DI。
你能做的是
export class Cmp{
instance:any;
constructor(http:Http){
this.instance = new SomeClass('InstanceOne', http);
this.instance.get();
}
}
或者您可以提供一个字符串并使用 @Inject('sometoken')
来获取 DI 在创建新的 SomeClass
.
时传入的 name
你好,我有一个类似的服务
@Injectable()
export class ParentService{
constructor(private http:Http){}
get(){this.http.get(...)}
}
我可以创建一个扩展服务的 class 吗?例如
export class SomeClass extends ParentService {
public name:string;
constructor(name:string, private http:Http){
super(http);
this.name = name;
}
}
并使用 new 关键字在组件内部实例化,例如
export class Cmp{
instance:any;
constructor(){
this.instance = new SomeClass('InstanceOne', ?? )
this.instance.get();
}
}
我的想法是,对于每个新实例,我都可以将一个字符串作为 urlPath 传递,并使用该实例从我的服务中调用通用函数。谢谢!
如果你想让DI传递一个构造函数参数,那么你需要将实例化委托给Angulars DI。
你能做的是
export class Cmp{
instance:any;
constructor(http:Http){
this.instance = new SomeClass('InstanceOne', http);
this.instance.get();
}
}
或者您可以提供一个字符串并使用 @Inject('sometoken')
来获取 DI 在创建新的 SomeClass
.
name