angularjs
使用模組化的組織方式,和依賴注入的設計。這使得模組之間耦合度較低,模組更容易復用。同時支援宣告式的程式設計風格。 在你建立angular module 或者 service 之前,首先需要了解一下 angular module 和 service 的工作方式。
在angular中,乙個module通常對應乙個js檔案,其中可以包括controller、service、filter、directive等。 下面我們宣告乙個模組:
,並在其中宣告乙個controller:worldctrl
,乙個directive:customer
,和乙個filter:count
。
接著在模板中,使用上面宣告的
在angular中,directive、service、filter、controller都是以工廠方法的方式給出,而工廠方法的引數名對應著該工廠方法依賴的service。如: .
在上述的function
執行之前,angular injector會生成乙個$scope
的例項和$http
的例項,並傳入該方法。 如果你希望對js進行壓縮處理,那麼引數名就可能發生變化,angular injector將不能夠正確地注入依賴的service。於是有另外一種寫法: .
以字串陣列的形式來宣告依賴項,因為字串常量不會被壓縮。
除此之外,還可以設定$inject
屬性顯式地宣告controller的依賴:
);如上所述,service以依賴注入的方式被 controller、filter、directive 或其他 service 使用。service 是 angular 中最常見的**復用機制。 本節便來探索如何建立自己的 service。
.factory
('someservice'
,function
(dependency1
,...)
});
當someservice
被依賴時,angular injector 會呼叫上述工廠方法,將返回值作為service的例項傳入依賴它的工廠方法。
.service
('someservice'
,someservice
(dependency1
,...));
當someservice
被依賴時,angular injector 會以new
的方式呼叫該建構函式,將返回值作為 service 的例項傳入依賴它的工廠方法。
.value
('someservice',);
.constant
('anotherservice'
,'i am a ****** string');
通常在啟動乙個
之前,需要通過jquery讀取靜態渲染的一些環境變數,以value
或constant
顯然,上述的 service 構建方式都是 service provider 的特例,事實上它們都是呼叫 service provider 來實現 service 宣告的。下面給出乙個典型的 service provider 宣告: .constant
和value
的區別在於是否允許修改。
provider
('someservice'
,function
someserviceprovider
()this
.$get
=function
(dependency1
,...)
}});
同時 service provider 是可配置的: .
config
(function
(someserviceprovider
));
angular js中的模組化
模組 module 及模組中註冊物件 模組將醜陋的 全域性定義的控制器模組化,目前 如下 1 var helloctrl function scope 模組化的 如下 angular.module hello controller helloctrl function scope 像module 一...
模組化InnoSetup依賴項安裝
原文在這裡 說明 源 是模組化的,結構如下 你需要把所需的模組在頂部使用 include命令包含在源 中,例如 include scripts products dotnetfx11.iss 然後你只需要在 code 段呼叫它們的main函式,如 dotnetfx11 你很可能需要調整setup.i...
理解模組化和依賴管理 一
應用本身也可以分解成為多個相互互動的小部分,學習封裝 的技能,把 視作自成一體的元件,學習如何設計優秀的介面,如何安排介面 學習如何隱藏資料,只開放使用者需要的部分。如何解析依賴,避免手動維護一組有序的script標籤。封裝是為了讓功能自成一體,隱藏實現的細節。任何 不管是函式還是模組,都要有明確的...