2017-5-21 AngularJS學(xué)習(xí)筆記

指令作用域

  • 自定義指令可以又自己的控制器枫匾,自己的模型和作用域
  • 默認(rèn)情況,指令使用的模型是和它所在的控制器的模型是同一個(gè)模型
  • 注意:使用指令時(shí)堵幽,一定要注意大小寫
  • 如果定義指令名稱為大寫狗超,使用自定義指令時(shí)要用 - 轉(zhuǎn)換
  • 如:定義指令名稱 'skDir',使用自定義指令時(shí)轉(zhuǎn)換成 'sk-dir'
<body ng-app='app' ng-controller='xmgController'>
          <input type='text' ng-model='msg'>
          <sk-dir></sk-dir>
</body>
<script src='js/angular.js'></script>
<script>
          var app = angular.module('app',[]);
          app.controller('xmgController',['$scope',function($scope){
                  $scope.msg = '666';
          }]);
          app.directive('skDir',function(){
                  return {
                          restrict:'EA',
                          template:'<h1>{{msg}}</h1>',
                          replace:true,
                          controller:function($scope){
                                  $scope.msg="我是指令的 msg"
                          }
                  }
})
</script>

過(guò)濾器

在 AngularJS 中,使用過(guò)濾器格式化展示數(shù)據(jù)朴下,作用就是接收一個(gè)輸入努咐,通過(guò)某個(gè)規(guī)則進(jìn)行處理,然后范湖處理結(jié)果

angular 內(nèi)置了9個(gè)過(guò)濾器

  • 1.currency:將數(shù)值格式化為貨幣格式
    <p>{{price | currency:'$'}}</p>
  • 2.date:日期格式化
    <p>{{nowTime | date:'yyyy-MM-dd hh:mm:ss'}}</p>
  • 3.limitTo:取出字符串或數(shù)組前幾位(正數(shù))殴胧,或后幾位(負(fù)數(shù))
    <p>{{course | limitTo:-1}}</p>
  • 4.uppercase:將文本轉(zhuǎn)換成大寫格式
  • 5.lowercase:將文本轉(zhuǎn)換稱小寫格式
    <p>{{str1 | uppercase}}</p>
    <p>{{str2 | lowercase}}</p>
  • 6.number:數(shù)字格式化渗稍,可控制保留幾位小數(shù)位數(shù)
    <p>{{num | number:2}}</p>
  • 7.orderBy: 對(duì)數(shù)組進(jìn)行排序佩迟,第二個(gè)參數(shù)可控制方向,默認(rèn)是 false 升序
<p>{{score | orderBy:'' : false}}</p>
<p>{{stu | orderBy:'age' :true}}</p>
............................
$scope.course = ['html','css','js'];
$scope.stu = [
          {name:'sk',age:22},                      
          {name:'sk1',age:25},
          {name:'sk2',age:12},
          {name:'sk3',age:34},
          {name:'sk4',age:23}
];
  • 8.filter: 在給定數(shù)組中選擇滿足條件的一個(gè)子集竿屹,并返回一個(gè)新的數(shù)組报强,其提哦案件可以是一個(gè)字符串,對(duì)象拱燃,函數(shù)
<input type="text" ng-model="search">
<p>{{curse | filter:search}}</p>
//輸入一個(gè)字符秉溉,就會(huì)把包含此字符的數(shù)組元素顯示出來(lái)
<ul>
        <li ng-repeat='value in course | filter:search'>{{value}}</li>
</ul>
............................
$scope.course = ['html','css','js'];
$scope.stu = [
          {name:'sk',age:22},                      
          {name:'sk1',age:25},
          {name:'sk2',age:12},
          {name:'sk3',age:34},
          {name:'sk4',age:23}
];

管道符

  • 管道符:把上次的結(jié)果作為下次參數(shù)傳遞 “|”
  • 注意:過(guò)濾器本質(zhì)是一個(gè)方法/函數(shù)/function
  • 過(guò)濾器會(huì)自動(dòng)把 '|'前面的內(nèi)容,當(dāng)作方法第一個(gè)參數(shù)傳遞
<p>{{price | currency:"$"}}</p>
function currency(input,arg){
        return arg + input;
}
  • 注意2:如果想要自己手動(dòng)傳參碗誉,使用冒號(hào) ':'傳遞

自定義過(guò)濾器

  • AngularJS 內(nèi)置過(guò)濾器召嘶,還可以根據(jù)業(yè)務(wù)需要自定義過(guò)濾器
  • 通過(guò)模塊對(duì)象實(shí)例提供的 filter 方法定義過(guò)濾器
  • 自定義過(guò)濾器
  • 參數(shù)一:過(guò)濾器名稱
  • 參數(shù)二:回調(diào)函數(shù)
  • 返回為一個(gè)函數(shù)(input 為自動(dòng)傳入的數(shù)據(jù),input 為管道符前面的內(nèi)容)
app.fliter('skCur',function(){
        return function(input,args){
                  return args + input
        }
})
app.filter('firstUppercase',function(){
        return function(input,args){
                return input[0].toUpperCase() + input.slice(1);
        }
})

依賴注入

  • AngularJS 采用模塊化的方式組織代碼哮缺,將一些通用邏輯封裝成一個(gè)對(duì)象或者函數(shù)弄跌,實(shí)現(xiàn)最大成都的復(fù)用,這導(dǎo)致了使用者和被使用者之間存在依賴關(guān)系
  • 所謂依賴注入是指在運(yùn)行時(shí)自動(dòng)查找依賴關(guān)系蝴蜓,然后將查找到依賴傳遞給使用者的一種機(jī)制
  • 依賴注入分為兩種:
  • 行內(nèi)注入
    以數(shù)組形式明確聲明依賴碟绑,數(shù)組元素都是包含依賴名稱的字符串俺猿,數(shù)組最后一個(gè)元素是依賴注入的目標(biāo)函數(shù)
  • 推斷式注入
    1.沒(méi)有明確聲明依賴茎匠,AngularJS 會(huì)將函數(shù)參數(shù)名稱當(dāng)成是依賴名稱
    2.這種方式會(huì)帶來(lái)一個(gè)問(wèn)題,當(dāng)代碼經(jīng)過(guò)壓縮后函數(shù)的參數(shù)被壓縮押袍,這樣便會(huì)造成依賴無(wú)法找到诵冒,所以不建議使用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谊惭,隨后出現(xiàn)的幾起案子汽馋,更是在濱河造成了極大的恐慌,老刑警劉巖圈盔,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豹芯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡驱敲,警方通過(guò)查閱死者的電腦和手機(jī)铁蹈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)众眨,“玉大人握牧,你說(shuō)我怎么就攤上這事∶淅妫” “怎么了沿腰?”我有些...
    開(kāi)封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)狈定。 經(jīng)常有香客問(wèn)我颂龙,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任厘托,我火速辦了婚禮友雳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘铅匹。我一直安慰自己押赊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布包斑。 她就那樣靜靜地躺著流礁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪罗丰。 梳的紋絲不亂的頭發(fā)上神帅,一...
    開(kāi)封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音萌抵,去河邊找鬼找御。 笑死,一個(gè)胖子當(dāng)著我的面吹牛绍填,可吹牛的內(nèi)容都是我干的霎桅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼讨永,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼滔驶!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起卿闹,我...
    開(kāi)封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤揭糕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后锻霎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體著角,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年旋恼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吏口。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚌铜,死狀恐怖锨侯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冬殃,我是刑警寧澤囚痴,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站审葬,受9級(jí)特大地震影響深滚,放射性物質(zhì)發(fā)生泄漏奕谭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一痴荐、第九天 我趴在偏房一處隱蔽的房頂上張望血柳。 院中可真熱鬧,春花似錦生兆、人聲如沸难捌。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)根吁。三九已至,卻和暖如春合蔽,著一層夾襖步出監(jiān)牢的瞬間击敌,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工拴事, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沃斤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓刃宵,卻偏偏與公主長(zhǎng)得像衡瓶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子组去,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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