Angularjs四大特性2

angularjs前兩個(gè)特性見:http://www.reibang.com/p/edbf0a8ac920

一. AngularJS四大特性之三-依賴注入

  1. 若某個(gè)函數(shù)調(diào)用時(shí)需要其他的對(duì)象作為形參箕肃,就稱此函數(shù)依賴于形參

    function Driver(car) {
    car.strat();
    car.run();
    car.stop();
    }

  2. 如何解決依賴關(guān)系

    1)主動(dòng)創(chuàng)建

     var c1 = new Car();
     var d1 = new Driver(c1);
    
    1. 被動(dòng)注入(Injection)方式
      module.controller("控制器"涌庭,function($scope,$inerval));
      angular中的ngController指令在實(shí)例化控制器對(duì)象時(shí)铺呵,會(huì)根據(jù)指令的形參名猾担,創(chuàng)建出控制器所依賴的對(duì)象辑奈,并注入進(jìn)來---依賴注入(Dependency Injection)
      注意:
      1. angular在創(chuàng)建控制器對(duì)象時(shí)袱瓮,會(huì)根據(jù)形參列表中的每個(gè)形參依賴的對(duì)象的名稱來創(chuàng)建辙谜,故控制器聲明函數(shù)不能聲明angular無法識(shí)別的形參名 angular只提供了一種依賴注入方式-根據(jù)形參名來注入依賴的對(duì)象
      2. 若項(xiàng)目js文件使用了類似yuicompressor等壓縮程序问欠,默認(rèn)會(huì)把函數(shù)的形參名精簡為一個(gè)字母的形式肝匆,會(huì)導(dǎo)致Angular的依賴注入失敗-解決辦法

      module.controller("控制器名",[

         "$scope",
         "$interval",
         "$http",
         function(a,b,c){
      
         }
      

      ]);
      3. 可以被注入的對(duì)象 - 所有的service對(duì)象都可以被注入

    1)$rootScope 在多個(gè)控制器間共享數(shù)據(jù)的服務(wù)
    2)$interval 提供周期性定時(shí)器服務(wù)
    3)$timeout 提供一次性定時(shí)器服務(wù)
    4)$log 體用五個(gè)基本的日志輸出服務(wù)
    5)$http 提供異步HTPP請(qǐng)求(AJAX)的服務(wù)

     $http({method:"GET",url:""}).then(fun).catch(fun)
    
     $http.get("url").then(fn);
    
     $http.post("url",data).then(fn);
    

    6)$location

二. ng模塊中提供的過濾器

  1. filter:把model中的數(shù)據(jù)在顯示時(shí)以某種特定的格式來呈現(xiàn)

  2. lowercase

      語法:{{表達(dá)式 | lowercase}
    
  3. uppercase

     語法:{{表達(dá)式 | uppercase}
    
  4. number

     語法:{{表達(dá)式 | number}}
           {{表達(dá)式 | number:小數(shù)位數(shù)}}
    
  5. currency

     {{表達(dá)式 | currency}}
     {{表達(dá)式 | currency:'貨幣符號(hào)'}}
    
  6. date

    {{表達(dá)式 | date }}
    {{表達(dá)式 | date | "yyyy-MM-dd"}}
    

三. 總結(jié)ng模塊中我們已經(jīng)用到的內(nèi)容

  1. directive - 用在DOM元素上

    ngApp/ngbind/nginit/ngcontroller/ngmodel/
    
  2. service - 用在控制器的聲明里

     $scope/$rootScope/$timerout/$interval/$http/$location
    
  3. filter - 把model中的數(shù)據(jù)在顯示時(shí)以某種特定的格式來呈現(xiàn)

四. 單頁應(yīng)用

 單頁面應(yīng)用與多頁面應(yīng)用的區(qū)別

五. angularjs提供的模塊---ngroute

  1. 概念
 route: 路由   通過某條線路找到目標(biāo)內(nèi)容
 
 ngroute 模塊的目標(biāo): 就是根據(jù)瀏覽器中url中的一個(gè)特殊的地址標(biāo)記顺献,查找到該標(biāo)記所對(duì)應(yīng)的模板頁面旗国,并異步加載到ngview
  1. 使用步驟
 1) 創(chuàng)建唯一完整的HTML頁面,其中聲明一個(gè)容器注整,ngview指令能曾。引入angular.js angular-routejs

     <div ng-view></div>

 2)創(chuàng)建多個(gè)模板頁面(習(xí)慣上放在一個(gè)特別的目錄下,如tpl)

 3) 創(chuàng)建Module,聲明依賴于ng/ng-route兩個(gè)模板

     var app = angular.module("module",["ng","ngRoute"]);

 4)在Module中配置路由字典

     app.config(function($routeProvider){

      $routeProvider.when("/start",{

         templateUrl:xxx,
         controller:""     //此處聲明的控制器可供當(dāng)前目標(biāo)頁面所有元素使用   
       })
      })

 5)使用瀏覽器做測試

     http:IP地址/index.html#/路由地址
  1. ngroute中的頁面跳轉(zhuǎn)

    通過超鏈接訪問 href="#/main"
    通過js跳轉(zhuǎn) $location.path("/2")

補(bǔ)充:

AngularJS的最大的不足/應(yīng)用時(shí)需要特別關(guān)注的地方

原生ES/JS/DOM只有特定HTML元素的特定事件的監(jiān)聽機(jī)制肿轨,沒有監(jiān)聽數(shù)據(jù)的機(jī)制

$interval和window.setInterval()的區(qū)別

$interval修改任何的模型Model數(shù)據(jù)寿冕,底層會(huì)立即遍歷一遍$digest隊(duì)列

即使修改了Model數(shù)據(jù),也不會(huì)遍歷$diges
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末椒袍,一起剝皮案震驚了整個(gè)濱河市驼唱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驹暑,老刑警劉巖玫恳,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異优俘,居然都是意外死亡京办,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門帆焕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惭婿,“玉大人,你說我怎么就攤上這事叶雹〔萍ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵折晦,是天一觀的道長佑力。 經(jīng)常有香客問我,道長筋遭,這世上最難降的妖魔是什么打颤? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任暴拄,我火速辦了婚禮,結(jié)果婚禮上编饺,老公的妹妹穿的比我還像新娘乖篷。我一直安慰自己,他們只是感情好透且,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布撕蔼。 她就那樣靜靜地躺著,像睡著了一般秽誊。 火紅的嫁衣襯著肌膚如雪鲸沮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天锅论,我揣著相機(jī)與錄音讼溺,去河邊找鬼。 笑死最易,一個(gè)胖子當(dāng)著我的面吹牛怒坯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藻懒,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼剔猿,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了嬉荆?” 一聲冷哼從身側(cè)響起归敬,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鄙早,沒想到半個(gè)月后汪茧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝶锋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了什往。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扳缕。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖别威,靈堂內(nèi)的尸體忽然破棺而出躯舔,到底是詐尸還是另有隱情,我是刑警寧澤省古,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布粥庄,位于F島的核電站,受9級(jí)特大地震影響豺妓,放射性物質(zhì)發(fā)生泄漏惜互。R本人自食惡果不足惜布讹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望训堆。 院中可真熱鬧描验,春花似錦、人聲如沸坑鱼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲁沥。三九已至呼股,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間画恰,已是汗流浹背彭谁。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阐枣,地道東北人马靠。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像蔼两,于是被迫代替她去往敵國和親甩鳄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • AngularJS是什么额划?AngularJs(后面就簡稱ng了)是一個(gè)用于設(shè)計(jì)動(dòng)態(tài)web應(yīng)用的結(jié)構(gòu)框架妙啃。首先,它是...
    200813閱讀 1,607評(píng)論 0 3
  • 四大特性 使用MVC設(shè)計(jì)模式 雙向數(shù)據(jù)綁定 依賴注入 采用模塊化設(shè)計(jì) 一俊戳、控制器的作用域 每次調(diào)用ng-contr...
    lililifeng閱讀 3,065評(píng)論 0 1
  • 通過AngularJS仿豆瓣一刻的案例:https://github.com/zhongxiaolian/doub...
    中小戀閱讀 1,759評(píng)論 1 21
  • 人生 緣始于“遇見” 情長于“陪伴” 陪伴是溫暖人心的力量; 陪伴抑胎,是我能給你最好的禮物燥滑。 南湖味道 陪你走遍黃職...
    南城與巷閱讀 168評(píng)論 0 0
  • 文章3
    墨荷瓊林閱讀 148評(píng)論 1 0