三大框架---angular---依賴注入

? ? ? ? ? ? 上一章智玻,我們理解了angular框架的各種指令萨西,控制器,各種服務(wù)模塊的調(diào)用鼓黔。這個是 ? ? ?angular框架的運行模式央勒,通過c層來實現(xiàn)modle和v層的數(shù)據(jù)交互,來動態(tài)的實現(xiàn)頁面的動態(tài)效果请祖。通過控制器的作用订歪,來創(chuàng)建不同的作用域。通過肆捕,不同的作用域來進行不同的數(shù)據(jù)處理的刷晋。這樣angular框架就是把頁面的架構(gòu)分成不同的控制器,我們可以在控制器的引入不同的模塊和服務(wù)慎陵,來進行不同的服務(wù)引入眼虱。進行不同的操作。依賴注入在解決web需要的不同的功能上席纽,比如說捏悬,購物車的計算總價的時候,我們可以用工廠的模式來進行封裝不同的工具和方法润梯,在我們需要使用的時候过牙,可以直接調(diào)起方法,注入模塊到需要的控制器中纺铭,就可以來使用我們的依賴注入的工廠模式所封裝的方法寇钉。如果,需要在不同的控制器傳值的或者是說傳遞數(shù)據(jù)的話舶赔,我們可以通過service服務(wù)來進行數(shù)據(jù)之間的轉(zhuǎn)換扫倡,來進行不同頁面的數(shù)據(jù)的轉(zhuǎn)換。也是依賴注入的一種模式竟纳。在網(wǎng)站上撵溃,我們是經(jīng)常用到的service服務(wù)的。這些都是依賴注入的功能锥累,在數(shù)據(jù)的轉(zhuǎn)換和數(shù)據(jù)的傳值的缘挑,我們可以通過service服務(wù)上數(shù)據(jù)對象來進行數(shù)據(jù)的交互,在service服務(wù)上桶略,我們可以封裝一下方法语淘,比如點擊的數(shù)據(jù)的增加鬼悠,點擊按鈕數(shù)據(jù)的減少等的方法,來進行數(shù)據(jù)的交互和轉(zhuǎn)化亏娜。這些方法都在service服務(wù)里進行封裝好,我們可以通過數(shù)組來進行存儲數(shù)據(jù)蹬挺,通過封裝點擊方法來進行把數(shù)據(jù)push到數(shù)組里面维贺,然后,在注入service服務(wù)控制器的作用域中巴帮,我們就可以通過service的對象所封裝的方法拿到我們需要的數(shù)據(jù)了溯泣。因為service服務(wù)的回調(diào)函數(shù)是一個構(gòu)造函數(shù),在構(gòu)造函數(shù)的里面的所創(chuàng)建的是對象榕茧,可以用this來進行代表構(gòu)造函數(shù)的所創(chuàng)建的對象垃沦。在點擊事件里面,我們可以用this指針來進行指向點擊的數(shù)據(jù)對象用押,這樣肢簿,我們可以拿到我們所需要的數(shù)據(jù)對象,這樣蜻拨,我們可以就通過自定義指令來進行渲染到文檔流中池充。封裝好service服務(wù),引進我們的主頁里面缎讼。就可以注入我們所需要的模塊當中收夸,然后,我們在所需要的頁面中血崭,添加點擊事件卧惜。里面,可以進行傳進我們所需要的參數(shù)是我們用ajax請求下來的數(shù)據(jù)夹纫,所遍歷的對象咽瓷。這樣,我們可以通過添加點擊事件的時候捷凄,可以把所點擊的對象this.item 存儲在服務(wù)模塊中忱详,我們可以在購物車中,通過封裝好的數(shù)組push方法的所在的函數(shù)來進行拿到我們所點擊的對象數(shù)據(jù)跺涤。點擊幾個匈睁,我們所在的數(shù)組的數(shù)據(jù)就會有保存所點擊的對象數(shù)據(jù),我們就可以通過循環(huán)遍歷里面的數(shù)組中的數(shù)據(jù)桶错,來進行渲染航唆,因為,每一條數(shù)據(jù)都包含在對象里面院刁,我們可以通過自定義指令來進行對象的渲染糯钙,就是我們在購物車中的所添加的數(shù)據(jù)了。這個是我們所需要的方法和功能,因為任岸,我們在service中再榄,我們所需要的方法可以封裝和注入。

依賴注入可以通過以下幾個方法:

service: 數(shù)據(jù)的交互和注入享潜,保證數(shù)據(jù)的持久化困鸥,和不同頁面的引進共享數(shù)據(jù)。

一般的代碼寫法如下:參數(shù)第一是:我們模塊的名稱剑按。第二個參數(shù)是一個回調(diào)函數(shù)(注意:是個構(gòu)造函數(shù)疾就,所創(chuàng)建的是單例對象,我們可以用this指針來進行指向我們的單例對象艺蝴,也是我們所需要的數(shù)據(jù)的載體的數(shù)據(jù)的對象猬腰。),里面可以封裝我們所需要的方法和數(shù)據(jù)猜敢。

? ?.service('service', function () {

? ? ? ? ? ? var arr = [];

? ? ? ? ? ?this.name = 'Operation Data';

? ? ? ? ? this.addItem = function (item) {

? ? ? ? ? ? ?arr.push(item)

? ? ? ?};

})

factory: 工廠方法姑荷。工廠方法是我們的設(shè)計模式比較好的設(shè)計思想。在我們學習面向?qū)ο蟮臅r候缩擂,我們就可以通過工廠方法來創(chuàng)建我們的所需要的對象厢拭。可以大批量創(chuàng)建我們的所需要的對象模板撇叁。在angular框架中供鸠,我們用factory工廠方法來進行封裝我們的所需要的工具和方法。來進模塊的依賴注入陨闹。我們可以單獨建個模塊的來封裝我們的所需要的工具和方法楞捂,來進行再在需要的地方進行模塊注入。實現(xiàn)方法工具的共享趋厉。這個是工廠方法的用法寨闹。在工廠方法里面進行返回的也是個對象。外部可以調(diào)來獲取使用君账。寫法如下:

app.factory('logFactory',function(){

? ? ?return {?

? ? ? ? ? ? ? ? ? ? min: function (a,b) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?return a>b? a:b;

? ? ? ? ? ? ? ? ? ? ? ?} ,

? ? ? ? ? ? ? ? ? ? max:function (a,b){

? ? ? ? ? ? ? ? ? ? ? ? ? ?return a>b?b:a;

? ? ? ? ? ? ? ? ?}

? ? ? }

})

? ? ? ? 在這里繁堡,我們就可以用工廠的方法來進行定義了兩個方法,是比較大小的方法乡数,在需要比較大小的方法所需要的模塊我們可以依賴注入調(diào)用工廠的方法進行比較大小椭蹄。在原生js中,我們需要的是通過封裝函數(shù)來進行調(diào)用净赴,就可以了绳矩。在angular框架中,我們需要把公共的方法封裝在工廠的模式中玖翅,就可以了翼馆。通過模塊的注入來進行調(diào)用割以。這個是與原生的js中,所不同的方法应媚。在這里的是严沥,工廠的方法和service服務(wù)的就是我們來進行數(shù)據(jù)的傳送。

? ? ? ? ? 上面中姜,我們了解了我們的項目是通過模塊化來進行管理我們的頁面的祝峻,通過依賴注入的方式來進行方法的調(diào)用,和數(shù)據(jù)的傳送扎筒,這是angular的最大的特點,我們把計算價錢的方法酬姆,和計算數(shù)量的方法來進行封裝到工廠方法里嗜桌。也就是說,我們要在工廠里進行封裝我們所需要的方法辞色,通過模塊注入的形式來進行方法的傳遞骨宠,當然,也可以通過事件的觸發(fā)來進行調(diào)用我們的注入的方法相满,也就是我們定義的事件觸發(fā)來進行我們的注入的方法层亿,這是不同的控制器的傳遞方法的一種形式。所以立美,我們要把共同方法來進行封裝在工廠里面匿又,實現(xiàn)方法共享。在封裝方法建蹄,我們可以充分利用對象碌更,數(shù)組,函數(shù)來進行方法的封裝洞慎,通過函數(shù)的傳參痛单,形參,實參是我們的經(jīng)常利用函數(shù)的方法劲腿,定義傳入不同的參數(shù)來進行不同的方法計算方法旭绒,比如,在購物車中焦人,我們經(jīng)常用挥吵,定義求點擊數(shù)量相加的方法,這個數(shù)量是通過service服務(wù)上

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末花椭,一起剝皮案震驚了整個濱河市蔫劣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌个从,老刑警劉巖脉幢,帶你破解...
    沈念sama閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歪沃,死亡現(xiàn)場離奇詭異,居然都是意外死亡嫌松,警方通過查閱死者的電腦和手機沪曙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萎羔,“玉大人液走,你說我怎么就攤上這事〖窒荩” “怎么了缘眶?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長髓废。 經(jīng)常有香客問我巷懈,道長,這世上最難降的妖魔是什么慌洪? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任顶燕,我火速辦了婚禮,結(jié)果婚禮上冈爹,老公的妹妹穿的比我還像新娘涌攻。我一直安慰自己,他們只是感情好频伤,可當我...
    茶點故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布恳谎。 她就那樣靜靜地躺著,像睡著了一般憋肖。 火紅的嫁衣襯著肌膚如雪惠爽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天瞬哼,我揣著相機與錄音婚肆,去河邊找鬼。 笑死坐慰,一個胖子當著我的面吹牛较性,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播结胀,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼赞咙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了糟港?” 一聲冷哼從身側(cè)響起攀操,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秸抚,沒想到半個月后速和,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歹垫,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年颠放,在試婚紗的時候發(fā)現(xiàn)自己被綠了排惨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,989評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡碰凶,死狀恐怖暮芭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情欲低,我是刑警寧澤辕宏,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站砾莱,受9級特大地震影響瑞筐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜恤磷,卻給世界環(huán)境...
    茶點故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望野宜。 院中可真熱鬧扫步,春花似錦、人聲如沸匈子。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虎敦。三九已至游岳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間其徙,已是汗流浹背胚迫。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唾那,地道東北人访锻。 一個月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像闹获,于是被迫代替她去往敵國和親期犬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,995評論 2 361

推薦閱讀更多精彩內(nèi)容