2016-12-02 24 views
1

我正在開發一個庫以訪問REST ednpoint。Angular2:初始化一個可注射的參數

我產生了注射類的foreach REST端點(你可以採取here看看現在,我需要的OAuth舞蹈到這個召喚,我已經想創建一個OAuthService類:

import { Injectable } from '@angular/core'; 
import { Http, Headers, URLSearchParams } from '@angular/http'; 

import { OAuthSettings } from './OAuthSettings'; 

@Injectable() 
export class OAuthService 
{ 
    constructor(private http: Http, private settings: OAuthSettings) { } 

    grantAuthorization() {} 

    getAccessToken() {} 

    refreshAccessToken() {} 
} 

,其中OAuthSettings是:

export class OAuthSettings { 
    baseAuthzURI: string; 
    baseCESTURI: string; 

    client: string; 
    user: string; 
    passwd: string; 

    authzCode: string; 
    accessToken: string; 
    refreshToken: string; 
    authCodeThreshold: Date; 
    accessTokenThreshold: Date; 
    refreshTokenThreshold: Date; 
} 

我能弄清楚,我需要在UserApi作爲依賴添加OAuthService但是,這個OAuthSettings,這是怎麼提供或初始化?

這個庫被一個需要提供用戶和密碼的應用程序使用。所以,這些字段必須通過OAuthSettings提供。

+0

向'OAuthService'添加一個方法,該方法返回該實例的設置。 – GillesC

+0

對不起,但我無法弄清楚你想表達的意思。我編輯了這篇文章,並且我添加了用戶名和密碼,直到一個應用(使用我的庫)從任何形式讀取它。 – Jordi

+0

@Jordi:編輯你的標題(anGular,而非anDular) –

回答

2
@NgModule({ 
    providers: [{ provide: OAuthSettings, useValue: {...}}] 
+0

[email protected]ünter。請你可以擴展一下你的答案:[LoginModule.ts](https://gist.github.com/jeusdi/67676b50692ee9f2ed2e92acadd86826)和[LoginComponent.ts](https://gist.github.com/jeusdi/f9a518865732b8e7699896e089d567ff)和[LoginTemplate](https://gist.github.com/jeusdi/9a45d0bf393bab677537795cee2edf16)?我真的是一個角度爲2的新手,它真的會幫助我好一點。 – Jordi

+0

對不起,我不明白這些要點是如何相關的。您需要註冊一個提供商,然後DI可以將其注入到其他服務,組件,... –

+0

我需要在哪裏添加此註釋:在根模塊上還是在登錄模塊上? – Jordi