2016-08-13 14 views
0

基本API URL内のすべてのhttpリクエストをラップするためのCustomRequestOptionsクラスがありました。 クラスのようになります。私はこのエラーを取得する角度2のCustomReqeuestOptionsのマージ()が機能しません。RC5

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 

マージがないのはなぜ私のアプリが起動して、次のコードを実行しようとしているときに

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

} 

もう何をやっているの?

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

関連する問題