前端三大框架之一 Angular.js

一直說要給大家整理一下Angular的小方法,今天正好有空就給大家來分享下
Angular.js:

官方網(wǎng)站:www.angularjs.org

*** 在用Angular時夕冲,只盯住"數(shù)據(jù)" ***

Angular和原生js數(shù)據(jù)在一般情況下不互通

angular兩個概念:
    1.雙向綁定
        數(shù)據(jù)->頁面      數(shù)據(jù)一變乓序,頁面就跟著變
        頁面->數(shù)據(jù)      頁面變了原献,數(shù)據(jù)也會跟著變
    2.依賴注入
        JS的函數(shù):參數(shù)由調(diào)用決定的(定義沒用)
        ng的函數(shù):參數(shù)由定義決定的

ng-指令:
    ng-model        綁定數(shù)據(jù)源;
    ng-init         初始值;
    ng-app          引用模塊    (必須有)
    ng-controller   引用控制器
    ng-repeat       循環(huán)     (ng-repeat循環(huán)出來的元素的事件廉邑,不能直接賦值,可以套個函數(shù))
    ng-click        點擊事件 (想用什么事件去除on在前面在上ng-)
    ng-bind         數(shù)據(jù)綁定 (不太好用,會覆蓋原有的內(nèi)容)   可用{{xxx}} 模板輸出
    ng-show         顯示
    ng-hide         隱藏
    ng-src          如果不加ng-也可以出現(xiàn)效果,會報錯404
    ng-href         引用數(shù)據(jù)
    ng-class        需要放數(shù)組[className,className]
    ng-style        需要放json{width:200px,height:200px}
    ng-clack        防止頁面加載過慢時出現(xiàn)模板輸出{{xxx}}樣式


Angular模塊:
    angular.module('模板名字', [依賴模板])
        .controller('控制器名字', function (依賴項){            //定義控制器
            Code---------------
        })
        .filter('過濾器名字', function (){                     //定義過濾器
            return function (input, ){
                return 結(jié)果;
            };
        })
        .service(名字, function (){                           //定義服務
            Code--------------
        })
        .directive('名字',function (){                        //定義指令
            return {
                restrict: '類型', //ECMA
                template: '直接寫模板',
                templateUrl: '模板地址',
                transclude: true/false,         //嵌入原內(nèi)容
                replace:true/false              //
            };
        })
    });


Angular依賴項:
    $scope              
    $http               Angular中的交互
        $http.get
        $http.post
        $http.jonsp
    $interval           Angular中的定時器
    $timeout            Angular中的定時器

controller:         //控制器
    繼承
        父controller里定義的東西慨畸,子controller能用
    通信
        父子級controller——特別簡單莱坎,共享$scope
        無關(guān)的controller——麻煩,方法:自定義依賴

filter:             //過濾器
    {{數(shù)據(jù)|filter:"參數(shù)"}}      //輸出模板的樣式
       ↑            ↑
     input         arg
    
    angular.module('名稱',[]).filter('過濾器名稱',function(){
        return function(){
            return 返回展示的數(shù)據(jù);
        }
    })
directive:
    directive中的ECMA
        1.元素型   自定義元素(標簽)       //Element;
            <aaa-slider>
                <aaa-slider-item src="1.png"/>
                <aaa-slider-item src="2.png"/>
                <aaa-slider-item src="3.png"/>
            </aaa-slider>
        
        2.class型                       //Class;

        3.屬性型   自定義屬性            //Attribute;
            <aaa-dialog abc-drag="true">
                <aaa-button type="ok" value="確定"/>
                <aaa-button type="cancel" value="取消"/>
            </aaa-dialog>

        
        4.注釋型                        //Comment;

    directive中的嵌套:
        把原有的內(nèi)容嵌入進來

        1.transclude: true             //當需要嵌入原有內(nèi)容時在函數(shù)中添加;
        2.占位符
            標簽      xxx<span ng-transclude></span>xxx
                    xxx<span ng-transclude>內(nèi)容</span>xxx

            直接用     xxx<ng-transclude></ng-transclude>xxx
                    xxx<ng-transclude>內(nèi)容</ng-transclude>xxx

自定義依賴(通信)
    route
        App寸士、網(wǎng)頁:狀態(tài)

Angualr中的$http:
    $http.get
        ===GET方式===
        兩種寫法:
        1.字符串模板
        $http.get(`xxx?asf=sdf`).then(Fn);

        2.params傳參
        $http.get('url', {params: {xxx},responseType:'json'}).then(Fn,Fn);  //需要加data
        $http.get('url', {params: {xxx},responseType:'json'}).success(Fn).error(Fn);  //直接使用
    $http.post
        ===POST方式===
        根據(jù)http協(xié)議的規(guī)定
        GET方式:1種編碼方式    urlencoded編碼
            weibo.php?a=12&b=5

        POST方式:3種編碼方式
            Content-Type:application/x-www-form-urlencoded

            1.把angular默認content-type改了
                改成服務器認識的urlencoded編碼

            2.把angular默認轉(zhuǎn)碼的函數(shù)改了
                {params: {a: 12, b: 5}} =>  '{"params": {"a": 12, "b": 5}}'  //標準的json;
                {params: {a: 12, b: 5}} =>  'a=12&b=5';         //轉(zhuǎn)為服務器能識別的樣式;

        如何修改:

            Angular.module('',[])
            .config(['$httpProvider', ($httpProvider)=>{
                //1.把angular默認content-type改了
                $httpProvider.defaults.headers.post['content-type']='application/x-ww...'

                //2.把angular默認轉(zhuǎn)碼的函數(shù)改了
                $httpProvider.defaults.transformRequest=function (data){
                    data=>{params: {}}

                    data.params => 'a=12&b=5'

                    return str;
                };
            }])
            .controller('',function (){
                //Code
            })

    $http.jonsp
        如何使用:
            Angular.module('', [])
                .controller('', ($scope, $http)=>{
                    $scope.wd='';
                    var url='自己找一個jsonp接口';

                    //當wd數(shù)據(jù)變化時
                    $scope.s=[];
                    $scope.$watch('wd', ()=>{
                        $http.jsonp(url, {params: {
                            wd: $scope.wd, cb: 'JSON_CALLBACK'
                        }}).then((res)=>{
                            $scope.s=res.data.s;
                        }, ()=>{
                        alert('失敗');
                        });
                    });
                });

        *注:因Angular版本修改會導致無法使用建議使用低版本;

喜歡的幫我點擊下哦,我還會更新一些常用的小方法哦!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末檐什,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子弱卡,更是在濱河造成了極大的恐慌乃正,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谐宙,死亡現(xiàn)場離奇詭異,居然都是意外死亡界弧,警方通過查閱死者的電腦和手機凡蜻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門搭综,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人划栓,你說我怎么就攤上這事兑巾。” “怎么了忠荞?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵蒋歌,是天一觀的道長。 經(jīng)常有香客問我委煤,道長堂油,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任碧绞,我火速辦了婚禮府框,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘讥邻。我一直安慰自己迫靖,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布兴使。 她就那樣靜靜地躺著系宜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪发魄。 梳的紋絲不亂的頭發(fā)上盹牧,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音欠母,去河邊找鬼欢策。 笑死,一個胖子當著我的面吹牛赏淌,可吹牛的內(nèi)容都是我干的踩寇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼六水,長吁一口氣:“原來是場噩夢啊……” “哼俺孙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掷贾,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤睛榄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后想帅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體场靴,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旨剥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咧欣。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖轨帜,靈堂內(nèi)的尸體忽然破棺而出魄咕,到底是詐尸還是另有隱情,我是刑警寧澤蚌父,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布哮兰,位于F島的核電站,受9級特大地震影響苟弛,放射性物質(zhì)發(fā)生泄漏喝滞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一嗡午、第九天 我趴在偏房一處隱蔽的房頂上張望囤躁。 院中可真熱鬧,春花似錦荔睹、人聲如沸狸演。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宵距。三九已至,卻和暖如春吨拗,著一層夾襖步出監(jiān)牢的瞬間满哪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工劝篷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哨鸭,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓娇妓,卻偏偏與公主長得像像鸡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哈恰,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

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