2016-08-13 11 views
0

기본 API URL 내에 모든 HTTP 요청을 래핑하는 CustomRequestOptions 클래스가 있습니다.각도 2 CustomReqeuestOptions 각도 2 이후 병합() 작동하지 않습니다. RC5

내 응용 프로그램을 실행하고 다음 코드를 실행하려고
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}, 
+0

어떻게'CustomRequestOptions'를 사용합니까? 내 응용 프로그램에서 – dfsq

+0

, module.ts'제공자 : [ {provide : RequestOptions, useValue : CustomRequestOptions},' – TheUnreal

답변

1

당신은 다음과 같이 useClass 대신 useValue와 사용자 정의 요청 옵션을 제공한다 : 파스칼 Precth에서 의존성 주입에 대한 좋은 blog post 있습니다

providers: [ 
    { provide:RequestOptions, useClass:CustomRequestOptions } 
] 

.