前端三大框架之一 Angular.js

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

官方网站:www.angularjs.org

*** 在用Angular时,只盯住"数据" ***

Angular和原生js数据在一般情况下不互通

angular两个概念:
    1.双向绑定
        数据->页面      数据一变,页面就跟着变
        页面->数据      页面变了,数据也会跟着变
    2.依赖注入
        JS的函数:参数由调用决定的(定义没用)
        ng的函数:参数由定义决定的

ng-指令:
    ng-model        绑定数据源;
    ng-init         初始值;
    ng-app          引用模块    (必须有)
    ng-controller   引用控制器
    ng-repeat       循环     (ng-repeat循环出来的元素的事件,不能直接赋值,可以套个函数)
    ng-click        点击事件 (想用什么事件去除on在前面在上ng-)
    ng-bind         数据绑定 (不太好用,会覆盖原有的内容)   可用{{xxx}} 模板输出
    ng-show         显示
    ng-hide         隐藏
    ng-src          如果不加ng-也可以出现效果,会报错404
    ng-href         引用数据
    ng-class        需要放数组[className,className]
    ng-style        需要放json{width:200px,height:200px}
    ng-clack        防止页面加载过慢时出现模板输出{{xxx}}样式


Angular模块:
    angular.module('模板名字', [依赖模板])
        .controller('控制器名字', function (依赖项){            //定义控制器
            Code---------------
        })
        .filter('过滤器名字', function (){                     //定义过滤器
            return function (input, ){
                return 结果;
            };
        })
        .service(名字, function (){                           //定义服务
            Code--------------
        })
        .directive('名字',function (){                        //定义指令
            return {
                restrict: '类型', //ECMA
                template: '直接写模板',
                templateUrl: '模板地址',
                transclude: true/false,         //嵌入原内容
                replace:true/false              //
            };
        })
    });


Angular依赖项:
    $scope              
    $http               Angular中的交互
        $http.get
        $http.post
        $http.jonsp
    $interval           Angular中的定时器
    $timeout            Angular中的定时器

controller:         //控制器
    继承
        父controller里定义的东西,子controller能用
    通信
        父子级controller——特别简单,共享$scope
        无关的controller——麻烦,方法:自定义依赖

filter:             //过滤器
    {{数据|filter:"参数"}}      //输出模板的样式
       ↑            ↑
     input         arg
    
    angular.module('名称',[]).filter('过滤器名称',function(){
        return function(){
            return 返回展示的数据;
        }
    })
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中的嵌套:
        把原有的内容嵌入进来

        1.transclude: true             //当需要嵌入原有内容时在函数中添加;
        2.占位符
            标签      xxx<span ng-transclude></span>xxx
                    xxx<span ng-transclude>内容</span>xxx

            直接用     xxx<ng-transclude></ng-transclude>xxx
                    xxx<ng-transclude>内容</ng-transclude>xxx

自定义依赖(通信)
    route
        App、网页:状态

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方式===
        根据http协议的规定
        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默认转码的函数改了
                {params: {a: 12, b: 5}} =>  '{"params": {"a": 12, "b": 5}}'  //标准的json;
                {params: {a: 12, b: 5}} =>  'a=12&b=5';         //转为服务器能识别的样式;

        如何修改:

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

                //2.把angular默认转码的函数改了
                $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数据变化时
                    $scope.s=[];
                    $scope.$watch('wd', ()=>{
                        $http.jsonp(url, {params: {
                            wd: $scope.wd, cb: 'JSON_CALLBACK'
                        }}).then((res)=>{
                            $scope.s=res.data.s;
                        }, ()=>{
                        alert('失败');
                        });
                    });
                });

        *注:因Angular版本修改会导致无法使用建议使用低版本;

喜欢的帮我点击下哦,我还会更新一些常用的小方法哦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容