Angular2 RC BaseRequestOption构造函数注入

问题描述:

我不知道我是否缺少一些东西,但注入一个自定义baserequestoptions类的构造函数在Beta 17中对我来说工作正常,但在移动到RC1后,此方法似乎不再适用。Angular2 RC BaseRequestOption构造函数注入

我创建了一个plunkr以表明webapibaseurl现在来通过为未定义(相同的代码的方法,但有Beta版17所引用工作):

https://embed.plnkr.co/usOljRDLap9RlLd3RIBd/

任何想法?

这仍然适用于我。这是自定义的选项类我用:

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}) 
]); 

看到这个plunkr:https://plnkr.co/edit/MK30JR2qK8aJIGwNqMZ5?p=preview

编辑

似乎有在依赖注入的这种类水平的问题。我开了一个问题:https://github.com/angular/angular/issues/8925

+1

感谢您回复我。选项类本身很好,并且对请求起作用,但是对于我来说关键的一点是要为'undefined'注入'webApiBaseUrl'(或者其他任何其他的东西)。 – Monkeeman69

+0

@ Monkeeman69 Wouah,你完全正确。看起来,依赖注入对扩展'BaseRequestOptions'的类不起作用...而注入('webApiBaseUrl')可能在其他地方。我认为这是一个错误/回归。我会为此打开一个错误。 –

+0

这是我打开的问题:https://github.com/angular/angular/issues/8925。 –

RequestOptions延伸,而不是从BaseRequestOptions使其成为我

@Injectable() 
export class AppRequestOptions extends RequestOptions { 
    constructor(@Inject('webApiBaseUrl') private webApiBaseUrl:string) { 
    super({method: RequestMethod.Get, headers: new Headers()}); 
    console.log('webApiBaseUrl', webApiBaseUrl); 
    } 

    merge(options?:RequestOptionsArgs):RequestOptions { 
    options.url = this.webApiBaseUrl + options.url; 
    console.log('merge - options.url = '+options.url); 
    return super.merge(options); 
    } 
} 

工作,否则一些未知的原因注入@Inject('webApiBaseUrl') private webApiBaseUrl:string没有工作。

Plunker example