2015-05-14 69 views
2

我正在嘗試寫入全局角度$httpprovider默認值爲TypeScript。這是我的代碼,我目前有。

export class JSONDateParser { 
    private httpProvider:any; 
    public static $inject = [ 
     $httpProvider 
    ]; 
    constructor($httpProvider:any) { 
     console.log("Json Date Parser Defaults"); 
     this.httpProvider = $httpProvider; // This gives me runtime error 
              // as this is a referencing angular. 
    } 
} 

// here is my reference registering this 
app.config(JSONDateParser); 
  1. 我怎麼能寫在打字稿angularjs httpProvider默認值?
  2. 另外我怎樣才能應用lambda語法構造函數在Typescript中。
  3. 如果我將httpProvider變量指定爲ng.IHttpProvider類型,編譯器投訴this.httpProvider.defaults.transformResponse,transformResponse未解決。我在angular.d.ts (1.2.x)的類型定義中看到它沒有被定義,但它應該在那裏嗎?我錯過了什麼嗎?

在此先感謝您的幫助。

回答

0

我們就需要一點點調整語法:

// define parser 
export class JSONDateParser { 

    constructor(private $httpProvider:any) { 
     console.log("Json Date Parser Defaults"); 
    } 
} 

// register it 
app.config(['$httpProvider', ($httpProvider) => new JSONDateParser($httpProvider)]); 

.config()並不像​​或.controller()靈活。

所以我們必須將所有參數傳遞到初始化箭頭函數內的控制器中。我也用數組符號,這是這樣的 - 以後沒有涅槃

也深受其害,如果我們delcare PARAM私人:

constructor(private $httpProvider:any) { 
... 

編譯器將創建一個領域,所以以後我們可以做它分配this.$httpProvider