Angular 2 CustomReqeuestOptions merge()因为Angular 2 RC.5不起作用
问题描述:
我有一个CustomRequestOptions类来包装基本API URL中的所有http请求。 类看起来是这样的:Angular 2 CustomReqeuestOptions merge()因为Angular 2 RC.5不起作用
import {BaseRequestOptions, RequestOptions, RequestOptionsArgs, Headers} from '@angular/http';
export class CustomRequestOptions extends BaseRequestOptions {
merge(options?:RequestOptionsArgs):RequestOptions {
options.url = 'http://127.0.0.1/api/public/' + options.url;
if (options.method === 1) {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
options.headers = headers;
}
return super.merge(options);
}
}
当我的应用程序正在运行,并试图执行以下代码:
loadData()
{
this.http.get('data')
.map((res:Response) => res.json())
.subscribe(
data => {
console.log("TEST");
);
}
我得到这个错误:
browser_adapter.ts:82 ORIGINAL EXCEPTION: TypeError: newOptions.merge is not a function
为什么合并不工作了,还有什么选择?
app.module.ts
providers: [
{provide:RequestOptions,useValue:CustomRequestOptions},
答
你应该提供useClass而不是useValue您的自定义请求选项如下:
providers: [
{ provide:RequestOptions, useClass:CustomRequestOptions }
]
有一个很好的blog post约帕斯卡尔Precth依赖注入。
你如何使用'CustomRequestOptions'? – dfsq
在我的应用程序中,module.ts提供程序:[提供:RequestOptions,useValue:CustomRequestOptions},' – TheUnreal