2015-05-29 76 views
0

我實際在研究角度DI容器,我需要一些信息。角度2中的DI

事實上,讀取API時,似乎Injector類接受工廠參數中的綁定列表,並解析它以獲取ResolvedBinding列表。

NB:https://angular.io/docs/js/latest/api/di/

我想知道系統是如何能夠管理綁定和ResolvedBing之間的轉換,因爲:

  • 綁定可以返回一個值
  • 綁定可以返回一個別名
  • 綁定可以返回一個類
  • 綁定可以返回一個工廠

的ResolvedBinding構造如下:

constructor(key:Key, factory:Function,...) 

看來,它的好返回工廠時,需要的是有(和類,如果我們承認這個類是通過工廠創建每次),但什麼如果我只需要返回一個值? fw是否創建了一個專門返回值的工廠?

回答

2

傳遞給噴油器創建的綁定並不真的返回其中一個值。綁定字面上表示綁定配置本身。

正如您可能知道的那樣,綁定get是一個令牌並使用工廠函數告訴注入器如何創建特定類型的實例。因此,您在此提及的工廠功能可以是.toClass().toFactory(),.toValue()

在創建ResolvedBinding之前,將食譜標準化。以下是LOC應該清除的內容:https://github.com/angular/angular/blob/master/modules/angular2/src/di/binding.ts#L221-L246