国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

關(guān)于angularjs依賴注入的整理

原創(chuàng) 2016-11-07 14:48:00 531
摘要:初學(xué)angularjs階段,剛剛看到菜鳥(niǎo)教程的angularjs依賴注入?,F(xiàn)在整理一下:       1.含義:一個(gè)或更多的依賴(可以理解為模塊關(guān)系依賴)或服務(wù)(分為內(nèi)建服務(wù)[例如$http,$tiomeout等]和自建服務(wù)),被注入(或引用到)一個(gè)獨(dú)立對(duì)象中,成為該對(duì)象的一部分。        舉個(gè)栗子:①一個(gè)存在于

初學(xué)angularjs階段,剛剛看到菜鳥(niǎo)教程的angularjs依賴注入?,F(xiàn)在整理一下:

       1.含義:一個(gè)或更多的依賴(可以理解為模塊關(guān)系依賴)或服務(wù)(分為內(nèi)建服務(wù)[例如$http,$tiomeout等]和自建服務(wù)),被注入(或引用到)一個(gè)獨(dú)立對(duì)象中,成為該對(duì)象的一部分。

        舉個(gè)栗子:①一個(gè)存在于社會(huì)中的人。很多事情不必親自去做,社會(huì)為他提供了各種服務(wù),例如圖書(shū)館,地鐵,公交,公園等。他想乘坐地鐵去某個(gè)地方,不必自己造地鐵,只要花錢(qián)(注入)就可以使用這個(gè)服務(wù)。當(dāng)然他也可以自己定制個(gè)性化服務(wù)(社會(huì)提供的服務(wù)可以理解為內(nèi)建服務(wù)),他可以自己定制一個(gè)勞斯萊斯(自建服務(wù)),不去去苦哈哈的擠地鐵了。

         ②同樣的這個(gè)人,不僅是個(gè)體。更是各種關(guān)系(依賴)中的人。比如:張三想去某國(guó)內(nèi)頂級(jí)醫(yī)院看專家號(hào),而自己的妻子的父親正好和這個(gè)專家是熟人,那張三就可以輕松的看到專家號(hào)。而不去自己去排隊(duì)。

         ③一個(gè)人可以動(dòng)用社會(huì)的服務(wù)和自己經(jīng)營(yíng)的各種人際關(guān)系。去完成很多事情,而不必親力親為。而這些用社會(huì)的服務(wù)和自己經(jīng)營(yíng)的各種人際關(guān)系,成為這個(gè)人的一部分。

       2.目的:高內(nèi)聚,低耦合。

        題外話:我怎么感覺(jué)是為了偷懶呢。自己想把自己的工作分給別人,但又要保證工作質(zhì)量的做法。哈哈

       3.分類:

        1)內(nèi)建服務(wù):據(jù)說(shuō)“AngularJS 內(nèi)建了30 多個(gè)服務(wù)”。這是菜鳥(niǎo)教程里面一個(gè)關(guān)于服務(wù)的介紹:http://www.runoob.com/angularjs/angularjs-services.html

        2)自建服務(wù):同樣是菜鳥(niǎo)教程的介紹:http://www.runoob.com/angularjs/angularjs-dependency-injection.html

          雖然有例子,不過(guò)對(duì)于我這種小白來(lái)說(shuō),還是不清楚。所以上網(wǎng)整理一下相關(guān)資料,自建服務(wù)的方式主要由三種: Factory  Service   Provider:

          ①factory方法。該方法在函數(shù)里面定義了一個(gè)對(duì)象,然后給這個(gè)對(duì)象添加屬性和方法,最后返回這個(gè)對(duì)象:

         21.jpg

   factory也可以注入內(nèi)建服務(wù):

        22.jpg

       ②service方法與factory方法的不同,service方法去掉了return,實(shí)例化了一個(gè)類:

       23.jpg

  service也可以注入內(nèi)建服務(wù)。同時(shí)factory返回的是對(duì)象,service"返回"的是類,factory返回的對(duì)象可以被注入到service中進(jìn)行使用:

      24.jpg

      ③provider是唯一一個(gè)可以傳進(jìn) .config() 函數(shù)的 service。目的是產(chǎn)生一個(gè)可以配置的service。它可以在 service 對(duì)象啟用之前,先進(jìn)行模塊范圍的配置

      25.jpg

      3)最后,還要說(shuō)一下。ps:不要把邏輯都寫(xiě)在controller里面,controller這一層應(yīng)該很薄。因?yàn)閏ontroller在不用時(shí)(如:切換或者刷新頁(yè)面時(shí))就會(huì)被銷毀、清空,而service在應(yīng)用生命周期結(jié)束時(shí)(如:關(guān)閉瀏覽器時(shí))才會(huì)被清空。所以應(yīng)該使用service,然后把service注入到controller里面,而讓controller起一個(gè)初始化的作用。

          具體的原因看這里-這是開(kāi)源中國(guó)上的對(duì)原文的翻譯 :http://www.oschina.net/translate/angularjs-factory-vs-service-vs-provider    ; 如果你英語(yǔ)水平不錯(cuò),可以看看原文,里面有原文鏈接,不過(guò)需要fq。


發(fā)佈手記

熱門(mén)詞條