2016-08-20 15 views
0

簡単な質問。Angular2ルーターテンプレートリクエストhttpヘッダー

Angular2ルータがサーバーにルーティング要求を行うために使用するものは何ですか?すべてのテンプレート要求にカスタムヘッダー(X-locale: 'en')を挿入する必要があるため、サーバーはそれらを翻訳できます。

私は、BaseRequestOptionsとHttpクラスをオーバーライドしており、デフォルトルーティング呼び出し以外のすべてを処理しています。これで、@Componentテンプレートが呼び出されます。


UPDATE#1

私はここで問題

を説明しますangular2は私Laravel5バックエンドになりますテンプレートを要求しています。

enter image description here

お知らせ Main.Users.user Main.Users.user-詳細

のように。

これらはすべて、Angular2が行う@Componentテンプレートリクエストです。また、私は@Componentテンプレート要求のHTTPヘッダーにX-ロケールヘッダを挿入する必要があり

enter image description here

の下にリクエストの詳細を掲載します。そのためにどのクラスがそれらのリクエストを作成するのかを知る必要があるので、リクエストヘッダーを何とか変更できます。


更新#2

私はまた、これは期待通りに動作し、私はアプリで作るすべてのHTTPリクエストにX-ロケールを挿入している私のカスタムBaseRequestOptionsコード

class RequestOptionsWrapper extends BaseRequestOptions { 
    constructor() { 
     super(); 
     let locale = (localStorage.getItem("locale")) ? localStorage.getItem("locale") : "en" ; 
     this.headers.append('X-locale', locale); 
    } 
} 

//enableProdMode(); 
bootstrap(
    AppComponent, 
    [ 
     ROUTER_PROVIDERS, 
     ROUTER_DIRECTIVES, 
     HTTP_PROVIDERS, 

     provide(RequestOptions, { useClass: RequestOptionsWrapper }) 
    ] 
) 

を掲載します除外されている気になるテンプレート呼び出しは例外です。また、Httpクラスをオーバーライドしましたが、@ Componentテンプレート呼び出しでは、HttpクラスもBaseRequestOptionsクラスも呼び出されません。

Http.post要求

enter image description here

+0

がすべてのサーバに要求を行いません。ルータはクライアント専用です。経路が遅延ロードされたモジュールのコンポーネントに切り替わると、角度によって一部のコンポーネントがロードされることがあります。 –

+0

私の初心者の質問が更新されましたので、必要なものをよりよく理解することができます。 –

+0

カスタム 'BaseRequestOptions'を示すコードとその提供方法を​​掲載してください。 –

答えて

0

の小さな例は、あなたのJB Nizetとギュンターありがとうございました。私は最終的に要求ヘッダーの代わりにangular2-cookieを使用することを選択しました。

私は自分のアプリケーションに提供するグローバルなCookieServiceサービスを行い、ロケールCookieを設定して、すべてのテンプレートリクエストで使用します。

App.ts

import { CookieService }           from 'angular2-cookie/core'; 

//enableProdMode(); 
bootstrap(
    AppComponent, 
[ 
    CookieService, 

    ROUTER_PROVIDERS, 
    ROUTER_DIRECTIVES, 
    HTTP_PROVIDERS, 

] 
) 
.catch(err => console.error(err)); 

とルータ私の知る限り、要求

enter image description here