2014-04-01 80 views
0

我正在經歷幾個星期的angularjs,已經到達裝飾器,我所理解的是,它只會通過添加或修改現有指令來修飾/修改現有指令現有的指令對象,爲什麼使用裝飾器,它會證明優點

我的問題是我們爲什麼不直接在指令本身中做同樣的事情,爲什麼我們需要編寫一個抽象指令,然後在後期執行config()指令,

使用這種行爲的任何優勢?當它證明,它是值得使用裝飾。

注:由於我是一個學生,它可能是一個簡單的或愚蠢了點,但請做諮詢,

回答

1

我不相信你可以裝飾指令。裝飾器用於覆蓋或修改服務。它通常用於修改/增強/替換/打包不屬於您的第三方或上游服務。優點有很多,我將列出一些我能想到的把我的頭頂部:

  1. 您可以修改,增加或更換的內置的服務 第三方將沒有意義修改在源頭。這個答案給了 一個很好的例子:https://stackoverflow.com/a/16078515/202913
  2. 你可以完全替換一個服務。作爲一個例子,您可以使用您自己的實現替換 內置$ log服務,該實現會將您的服務器記錄到 或將日誌存儲在本地存儲中。
  3. 您可以打包服務以進行日誌記錄/追蹤目的。
  4. 您可以在調用實際的 服務方法(例如,在調用$ http 方法之前注入安全令牌。

這是一個強大的功能,並打開許多門。

+1

其實你可以裝飾指令:http://briantford.com/blog/angular-hacking-core –

+0

@DmitriZaitsev謝謝你的鏈接,非常有趣。 – Beyers

相關問題