Angular JS(1)

1淤毛、表達(dá)式

<!DOCTYPE html>
<html lang="en" ng-app="">
<head>
    <script src="./angular.min.js"></script>
</head>
<body ng-init="name='sun';age=13">
    {{ 5*4 }}
    {{ 5>4?"真":"假"}}
    <h1>{{name +"--"+age}}</h1>
    <input type="text" ng-model="one">
    *
    <input type="text" ng-model="two">
    =
    {{one*two}}
</body>

2、內(nèi)置指令

凡是以ng- 開(kāi)始的,都稱(chēng)為內(nèi)置指令
ng-app 用于表示一個(gè)angularjs應(yīng)用
Angular會(huì)從ng-app所在的標(biāo)簽開(kāi)始采呐,管理這個(gè)應(yīng)用
一個(gè)頁(yè)面(應(yīng)用)中,建議只存在一個(gè)ng-app
如果有多個(gè)搁骑,需要手動(dòng)啟動(dòng)對(duì)應(yīng)的應(yīng)用
目前ng-app=" "表示使用默認(rèn)的angular 應(yīng)用
ng-init='a=b;c=d;...';
使用 ng-init 初始的數(shù)據(jù)斧吐,會(huì)掛載到根作用域
在開(kāi)發(fā)正式項(xiàng)目時(shí),不建議使用ng-init做數(shù)據(jù)初始化
應(yīng)該交由controller去完成
ng-model 將(表單)視圖與模型進(jìn)行(雙向)綁定
ng-repeat 遍歷對(duì)象
遍歷數(shù)組:ng-repeat="x in arr"
遍歷對(duì)象:ng-repeat=" (key,val) in obj"
屬性: $first 是否是第一項(xiàng)
$last 是否是最后一項(xiàng)
$middle 是否是中間項(xiàng)
$index 下標(biāo)值
track by $index Angular需要一個(gè)不重復(fù)的值去跟蹤數(shù)據(jù)的變化仲器,當(dāng)數(shù)組內(nèi)有重復(fù)時(shí)煤率,將導(dǎo)致angular 無(wú)法正常跟蹤對(duì)應(yīng)的值,需要使用track by $index 為遍歷指定一個(gè)唯一不重復(fù)的值乏冀。
ng-class為元素指定樣式名
ng-class="{true:'class1',false:'class2'}[bol]" 由 Bol 決定添加哪個(gè)樣式
ng-class="{'class1':bol1,'class2':bol2,'classN':bolN}"由各個(gè)變量決定是否添加指定的樣式
ng-style 為元素添加樣式
ng-style=" { style1:'style',...}"
ng-show是否顯示元素蝶糯,true顯示,false隱藏
ng-show 為 false 時(shí)辆沦,只是為元素添加一個(gè)優(yōu)先級(jí)最高的 display:none;
ng-if 是否顯示元素
ng-if 為 false 時(shí)裳涛,會(huì)將元素從DOM 樹(shù)種移除
當(dāng)元素需要反復(fù)顯示隱藏時(shí),使用 ng-show
當(dāng)元素只顯示一次后就不再使用時(shí)众辨,使用ng-if
ng-click 單擊事件
ng-mouseover...dom的標(biāo)準(zhǔn)事件的寫(xiě)法
ng-bind 將模型輸出到頁(yè)面端三,后引入腳本時(shí)可以解決{{ }}造成的原樣輸出問(wèn)題

  .box{width:100px;height:100px;background: red;}
        .box1{border:1px solid}
        .box2{border-radius: 5px;}
        .box3{box-shadow: 2px 2px 5px black}

<body ng-init="isBox1=true;isBox2=true;isBox3=true;styleObject={};isShow=true;html='<h2>htmlString<h2>'">
    <select name="" id="" ng-model="className">
        <option value="true">box1</option>
        <option value="false">box2</option>
    </select>
    <div class="box" ng-class="{true:'box1',false:'box2'}[className]"></div>
    <div class="box" ng-class="{'box1':isBox1,'box2':isBox2,'box3':isBox3}"></div>

    <div ng-style="{width:'100px',height:'100px',background:'green'}"></div>
    <div ng-style="styleObject"></div>

    <input type="checkbox" ng-model="isShow">顯示/隱藏

    <button ng-click="isShow = ! isShow"> 顯示、隱藏 </button>
    <div class="box" ng-show="isShow">1</div>
    <!--<div class="box" ng-show="!isShow">2</div>-->
    <div class="box" ng-if="isShow">2</div>

    <h1 >{{ isShow }}</h1>
    <h1 ng-bind="isShow"></h1>

    {{html}}
    <div ng-bind="html"></div>
    <div ng-bind-html="html"></div>
</body>

3鹃彻、Controller

angular.module( moduleName[,depends(可選參數(shù))]) 創(chuàng)建或獲取模塊
moduleName :模塊名稱(chēng)
depends: 依賴(lài)的其它模塊 Array
當(dāng)只傳入一個(gè)名稱(chēng)時(shí)郊闯,代表獲取指定的模塊
兩個(gè)參數(shù)時(shí),定義模塊蛛株,即使不依賴(lài)其它模塊团赁,也要傳入一個(gè)空的數(shù)組

<html lang="en" ng-app="myApp">

   var app = angular.module("myApp",[]);
    //推斷式注入
    app.controller("myController",function($scope){
        $scope.name="sun";
    });
    //聲明式注入(建議一律使用這種方式,代碼壓縮混淆后依然能正確運(yùn)行)
    //數(shù)組的 0 到 倒數(shù)第二項(xiàng) 是該控制器需要注入的模塊
    //最后一項(xiàng)是回掉函數(shù)
    app.controller("myController2",["$scope",function(s){
        s.name="tom";
    }])

$rootScope根作用域 在聲明 ng-app 的位置創(chuàng)建此作用域
一個(gè) angular 應(yīng)用有且只有一個(gè)根作用域
同級(jí)的作用域不可相互訪問(wèn)

<body ng-controller="mainController">
    <div ng-controller="myController">
        {{name}}---{{age}}--{{main}}--{{address}}
    </div>
    <div ng-controller="myController2">{{name}}--{{age}}--{{main}}--{{address}}</div>
    <div ng-init="address='Beijing'">
        {{address}}
    </div>
    {{name}}--{{main}}--{{address}}
</body>

    var app = angular.module("myApp",[])
    app.controller("myController",["$scope",function($scope){
        $scope.name = "sun";
        $scope.age = 30
    }]);
    app.controller("myController2",["$scope",function($scope){
        $scope.name = "tom";
    }]);
    app.controller("mainController",["$scope",function($scope){
        $scope.main = "Hello Angular"
    }])

子級(jí)作用域可以訪問(wèn)使用父級(jí)作用域的值谨履,但是無(wú)權(quán)修改

<body ng-controller="mainController">
    <h1>父級(jí)</h1>
    <input type="text" ng-model="pmsg">
    <div ng-controller="myController">
        <h1>子級(jí)</h1>
        <input type="text" ng-model="pmsg">
        這是父級(jí)的值:{{pmsg}}
        <h1 ng-repeat="item in items">{{item.name+'--'+item.price}}</h1>
        <button ng-click="clickEvent($event)">點(diǎn)擊</button>
    </div>
</body>

    var app = angular.module("myapp",[]);
    app.controller("myController",["$scope",function($scope){
        $scope.cmsg = ""
        $scope.items = [{
            name:'iPhone',
            price : 3000
        },{
            name:'藍(lán)莓',
            price : 4000
        }];
        $scope.clickEvent = function(e){
            console.log("點(diǎn)擊觸發(fā)",e);
            $scope.items.push({
                name:"新手機(jī)",
                price:9889
            })
        }
    }]);
    app.controller("mainController",["$scope",function($scope){
        $scope.pmsg = ""
    }])

內(nèi)置過(guò)濾器

使用內(nèi)置過(guò)濾器的方法是用 “管道符” “|” 鏈接
**currency ** 貨幣格式轉(zhuǎn)換
currency :“前綴” 更改指定的前綴欢摄,默認(rèn)為$
lowercass | uppercase 大小寫(xiě)轉(zhuǎn)換
date 日期格式轉(zhuǎn)換
y 年 M 月 d 日 H 24時(shí) h 12時(shí) m 分鐘 s 秒
數(shù)組過(guò)濾器:
limitTo 限制結(jié)果條數(shù) 如:limitTo:2 顯示兩條
orderBy 排序
orderBy:orderKey 按orderKey升序排列
orderBy:orderKey:true 按orderKey 降序排列
filter 按關(guān)鍵字快速過(guò)濾
filter:searchKey 過(guò)濾所有數(shù)據(jù)包含 searchKey 的內(nèi)容

 <h2 >{{ price }}</h2>
    <h2 >{{ price | currency}}</h2>
    <h2 >{{ price | currency:"¥"}}</h2>
    <h2 >{{ price | currency:"星星"}}</h2>
    <h2 >{{ str | lowercase}}</h2>
    <h2 >{{ str | uppercase}}</h2>
    <h2>{{date}}</h2>
    <h2>{{date | date:"yyyy-MM-dd HH:mm:ss a"}}</h2>
    <br>
    <!--<h3 ng-repeat="item in items | limitTo:2">{{item.name}}</h3>-->
    <!--<h3 ng-repeat="item in items | orderBy:'price':true">{{item.name}}--{{item.price}}</h3>-->

    <select name="" id="" ng-model="orderKey">
        <option value="name">按名稱(chēng)排序</option>
        <option value="price">按價(jià)格排序</option>
    </select>
    <input type="checkbox" ng-model="isDown">升/降
    <input type="text" ng-model="searchKey" 請(qǐng)輸入關(guān)鍵字>
    <h3 ng-repeat="item in items | orderBy:orderKey:isDown | filter:searchKey">{{item.name +'---'+ item.price}}</h3>

  angular.module("myapp",[])
    .controller("myController",["$scope",function($scope){
        console.log($scope)
        $scope.price = 4999,
        $scope.str = "Hello Angular",
        $scope.date = new Date(),
        $scope.items = [{
            name:"iPhone9"
            ,price : 9000
        },{
            name : "iPhone5"
            ,price:3000
        },{
            name:"小米"
            ,price:5000
        },{
            name:"藍(lán)莓"
            ,price:6000
        }]
    }])

自定義過(guò)濾器

 <select name="" id="" ng-model="orderKey">
        <option value="name">按名稱(chēng)排序</option>
        <option value="price">按價(jià)格排序</option>
    </select>
    <input type="checkbox" ng-model="isDown">升/降
    <input type="text" ng-model="searchKey" placeholder="輸入關(guān)鍵字">
    <!--<h3 ng-repeat="item in items | orderBy:orderKey:isDown | filter:searchKey">{{item.name +'---'+ item.price}}</h3>-->
    {{"str" | myFilter}} {{[2,3,4,5] | myFilter2}}
    <h3 ng-repeat="item in items | myFilter3:searchKey">{{item.name}}--{{item.price}}</h3>

angular.module("myapp", [])
        .filter("myFilter", function () {
            return function (val) {
                console.log(val);
                // return val.toUpperCase();
                return val == "str" ? "good" : "no"
            }
        })
        .filter("myFilter2", function () {
            return function (val) {
                console.log(val);
                var arr = val.map(Math.sqrt)
                return arr;
            }
        })
        .filter("myFilter3", function () {
            return function (val,arg1) {
                console.log(val);
                console.log(arg1);
                var arr=[];
                val.forEach(function(item){
                    if(item.name.indexOf(arg1)!=-1){
                        arr.push(item)
                    }
                })
                return arr;
            }
        })

http://www.zhangxinxu.com/wordpress/2013/04/es5%E6%96%B0%E5%A2%9E%E6%95%B0%E7%BB%84%E6%96%B9%E6%B3%95/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市笋粟,隨后出現(xiàn)的幾起案子怀挠,更是在濱河造成了極大的恐慌析蝴,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绿淋,死亡現(xiàn)場(chǎng)離奇詭異闷畸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)吞滞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)佑菩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人裁赠,你說(shuō)我怎么就攤上這事殿漠。” “怎么了佩捞?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵绞幌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我失尖,道長(zhǎng)啊奄,這世上最難降的妖魔是什么渐苏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任掀潮,我火速辦了婚禮,結(jié)果婚禮上琼富,老公的妹妹穿的比我還像新娘仪吧。我一直安慰自己,他們只是感情好鞠眉,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布薯鼠。 她就那樣靜靜地躺著,像睡著了一般械蹋。 火紅的嫁衣襯著肌膚如雪出皇。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天哗戈,我揣著相機(jī)與錄音郊艘,去河邊找鬼。 笑死唯咬,一個(gè)胖子當(dāng)著我的面吹牛纱注,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胆胰,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼狞贱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蜀涨?” 一聲冷哼從身側(cè)響起瞎嬉,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蝎毡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后佑颇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體顶掉,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年挑胸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痒筒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡茬贵,死狀恐怖簿透,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情解藻,我是刑警寧澤老充,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站螟左,受9級(jí)特大地震影響啡浊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胶背,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一巷嚣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钳吟,春花似錦廷粒、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至暇番,卻和暖如春嗤放,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背壁酬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工次酌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厨喂。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓和措,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蜕煌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子派阱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

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

  • AngularJS是什么?AngularJs(后面就簡(jiǎn)稱(chēng)ng了)是一個(gè)用于設(shè)計(jì)動(dòng)態(tài)web應(yīng)用的結(jié)構(gòu)框架斜纪。首先贫母,它是...
    200813閱讀 1,615評(píng)論 0 3
  • angular有哪些牛逼特性呢文兑? 1、模板機(jī)制2腺劣、雙向數(shù)據(jù)綁定3绿贞、模塊4、指令5橘原、依賴(lài)注入6籍铁、路由7、過(guò)濾器 An...
    Man僵小魚(yú)閱讀 1,152評(píng)論 0 6
  • ng-model 指令ng-model 指令 綁定 HTML 元素 到應(yīng)用程序數(shù)據(jù)趾断。ng-model 指令也可以:...
    壬萬(wàn)er閱讀 876評(píng)論 0 2
  • AngularJS AngularJS概述 介紹 簡(jiǎn)稱(chēng):ng Angular是一個(gè)MVC框架 其他前端框架: Vu...
    我愛(ài)開(kāi)發(fā)閱讀 2,340評(píng)論 0 8
  • 考完的第一天就發(fā)燒時(shí)種什么樣的感覺(jué)芋酌! 昨天結(jié)束了期末考試增显,可是今天的我就發(fā)燒了! 上午起床感覺(jué)扁桃體發(fā)炎了脐帝,我吃了...
    1路向前閱讀 163評(píng)論 0 0