我知道在正常引导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})]);
是否有其他方法可以提供这些默认请求选项?
答案 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提供程序配置。