2017-01-10 5 views
3

私はangular2-jwtパッケージを統合しようとしています。私は、カスタム設定オプションでangular2-jwt:useFactoryディレクティブは無視されます

import { Http, Headers, RequestOptions } from '@angular/http'; 
import { provideAuth, AuthHttp, AuthConfig } from 'angular2-jwt'; 
import { Injectable } from '@angular/core'; 

export function authHttpServiceFactory(http: Http, options: RequestOptions) { 

    return new AuthHttp(new AuthConfig({ 
     noTokenScheme: true, 
     tokenGetter: (() => JSON.parse( localStorage.getItem('access_token'))), 
     globalHeaders: [{'Accept': 'application/json'}], 
    }), this.http, this.options); 
} 

を次の関数を書いて、私のモジュール定義の内側に私はライン

providers: [ 
    ..., 
    { 
     provide: AuthHttp, 
     useFactory: authHttpServiceFactory, 
     deps: [Http, RequestOptions] 
    }   
], 

が含まれているが、私は私を無視するように見えるサービス内AuthHttpを使用しようとすると、 factoryメソッドを呼び出し、デフォルトの実装を返します。

import {AuthHttp} from 'angular2-jwt';

@Injectable() 輸出クラスSsoService {

constructor (
    private authHttp: AuthHttp, 
) {} 

は私のモジュール構成は正しいですか?私は次のように読み取るために代わりにファクトリクラスのインラインソリューションを使用するモジュールを変更他の誰のために

答えて

2

簡単な何かを見逃している:

providers: [ 
     ... 
     AuthHttp, 
     provideAuth({ 
      noTokenScheme: true, 
      tokenGetter: (() => JSON.parse(localStorage.getItem('access_token'))), 
      globalHeaders: [{'Accept': 'application/json'}], 
     })  
    ], 
関連する問題