如何在使用upgradeAdapter时为HTTP_PROVIDERS设置BaseRequestOptions?

时间:2016-05-31 07:52:23

标签: angular

我知道在正常引导Angular2时,引导调用可以用来提供默认的HTTP请求选项,如下所示:

bootstrap(App, [HTTP_PROVIDERS, provide(RequestOptions, {useClass: MyOptions})]);

但是,使用upgradeAdapter.bootstrap()方法时,这似乎不起作用:

//This throws ugly errors.
upgradeAdapter.bootstrap(document.documentElement, ['td', [HTTP_PROVIDERS, provide(RequestOptions, {useClass: MyOptions})], {strictDi: true});

我确实尝试将数组传递给upgradeAdapter.addProvider()方法,但我在MyOptions中添加的标头没有被发送。

//This doesn't seem to do anything at all.
upgradeAdapter.addProvider([HTTP_PROVIDERS, provide(RequestOptions, {useClass: MyOptions})]);

是否有其他方法可以提供这些默认请求选项?

1 个答案:

答案 0 :(得分:0)

使用UpgradeAdapter进行引导时,设置提供程序或使用自己的类,例如useClass或useValue,以及adapter.addProvider()。以下是使用修改后的RequestOptions引导混合角度应用程序的示例,以设置自定义标头:

var adapter = new UpgradeAdapter();

class MyRequestOptions extends BaseRequestOptions {
    constructor () {
        super();
        this.headers.append('CUSTOM_HEADER', 'Hello World');
    }
}

adapter.addProvider({ provide: RequestOptions, useClass: MyRequestOptions });

angular.element(document).ready(function(){
    adapter.bootstrap(document.body, ["MyNg1ModuleName"]);
});

请注意,虽然UpgradeAdapter接受第三个参数a" config" param,它实际上并不是Angular2提供程序配置。