Dependency injection Angular2 RC BaseRequestOption构造函数注入

Dependency injection Angular2 RC BaseRequestOption构造函数注入,dependency-injection,constructor,angular,Dependency Injection,Constructor,Angular,我不知道我是否遗漏了什么,但是在Beta 17中注入自定义baserequestoptions类的构造函数对我来说很好,但是在转移到RC1之后,这种方法似乎不再有效 我创建了一个plunkr来说明webapibaseurl现在是未定义的(与代码方法相同,但Beta 17引用有效): 有什么想法吗?这对我来说仍然有效。以下是我使用的自定义选项类: import {BaseRequestOptions, RequestOptions, RequestOptionsArgs} from '@angu

我不知道我是否遗漏了什么,但是在Beta 17中注入自定义baserequestoptions类的构造函数对我来说很好,但是在转移到RC1之后,这种方法似乎不再有效

我创建了一个plunkr来说明webapibaseurl现在是未定义的(与代码方法相同,但Beta 17引用有效):


有什么想法吗?

这对我来说仍然有效。以下是我使用的自定义选项类:

import {BaseRequestOptions, RequestOptions, RequestOptionsArgs} from '@angular/http';

export class AppRequestOptions extends BaseRequestOptions {
  constructor() {
  }

  merge(options?:RequestOptionsArgs):RequestOptions {
    options.url = 'https://www.test.org' + options.url;
    return super.merge(options);
  }
}
我是这样登记的:

bootstrap(App, [
  HTTP_PROVIDERS,
  provide(RequestOptions, {useClass: AppRequestOptions})
]);
请参阅以下链接:

编辑


对于这样的类,似乎在依赖项注入级别存在问题。我打开了一个问题:.

RequestOptions
扩展而不是从
BaseRequestOptions
使它适合我

@Injectable()
导出类AppRequestOptions扩展了RequestOptions{
构造函数(@Inject('webApiBaseUrl')私有webApiBaseUrl:string){
super({method:RequestMethod.Get,headers:newheaders()});
log('webApiBaseUrl',webApiBaseUrl);
}
合并(选项?:请求选项参数):请求选项{
options.url=this.webApiBaseUrl+options.url;
log('merge-options.url='+options.url);
返回super.merge(选项);
}
}
否则,由于未知原因,注入
@Inject('webApiBaseUrl')私有webApiBaseUrl:string
无法工作


谢谢你回复我。options类本身很好,可以处理请求,但对我来说,关键是尝试注入“webApiBaseUrl”(或其他类似的东西),它被认为是“未定义的”。@Monkeeman69-Wouah,你完全正确。依赖项注入似乎不适用于扩展
BaseRequestOptions
one的类。。。而(webApiBaseUrl的
webApiBaseUrl
)的注入可以在其他地方进行。我认为这是一个错误/倒退。我会为此打开一个bug。