zoukankan      html  css  js  c++  java
  • angularjs

    AngularJS 通过新的属性和表达式扩展了 HTML。

    angular js 2018/3/6

    ng-app:作用域
    ng-init:初始化
    ng-bind:绑定
    ng-model:双向绑定---------脏检查
    单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新。

    有单向绑定,就有双向绑定。如果用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定。
    含有ng都是指令

    例:
    angular是一个MVC框架:即
    M------------------module 模块
    V-------------------view 视野
    C------------------controller控制器
    一、angular开头的声明
    ng-app angular作用域一般写在body标签内或者html标签内
    ng-init="b=2;a=3;" 声明 (声明d=2;)

    列如:
    <div>
    {{a}} angular声明的参数一定要放在{{}} 括号内才能解析
    </div>
    <div>
    {{b}}
    </div>
    <div>
    {{a+b}}
    </div>
    <h1>{{a}}+{{b}}</h1>
    <div>
    {{a*b}}
    </div>
    二、绑定(ng-bind)
    <h1 ng-bind="b*a"></h1> h1标签内是6
    三、ng-model模型
    <body ng-app ng-init="a=3;b=5;">
    <h1>{{a}}</h1>
    <h1>{{a*b}}</h1>
    <h1>{{a+b}}</h1>
    <input ng-model="a" />
    <input ng-model="b" />
    <!--双向绑定------脏检查-->
    </body>
    等输出到页面的时候修改input的数整个页面从新进行运算

    四、作用域:($rootScope)对整个页面相当于全局变量
    也就是只要是用$rootScope定的东西它一定是作用于全局,而其它的只是对它控制器所在的那一部分
    列如:
    <body ng-app="app">
    {{haha}} 这里是鸣人
    <div ng-controller="ctrl">
    {{name}} 小潘
    {{age}} 200
    {{haha}} 这里是鸣人
    </div>
    <div ng-controller="ctrl2">
    {{name}} 小西
    {{age}} 188
    {{haha}} 这里便是鸣人
    </div>
    <script>

    //定义 app模块
    angular.module('app',[])
    .controller('ctrl',function($scope,$rootScope){
    $

    scope.name="小潘!"
    $scope.age = 200;
    $rootScope.haha = '鸣人!';
    })
    //不同的写法,第二个参数是一个数组
    .controller('ctrl2',["$scope",function($scope){
    $

    scope.name = '小西';
    $scope.age = 188;
    }])
    </script>
    </body>
    </html>
    $watch (观察看守的意思)
    <body ng-controller="ctrl">
    <h1>{{name}}</h1>
    <input ng-model="name"/>
    <script>
    angular.module('app',[])
    .controller('ctrl',function($scope,$timeout){
    $

    scope.name = "鸣人!"
    $scope.$watch(function(){
    console.log($

    scope.name)
    })
    setTimeout(function(){
    //手动触发angular的脏检查
    $scope.$apply(function(){ 请求传送
    $

    scope.name = '小樱!'
    })
    },2000) 2000是设置时间2秒后

    setTimeout(function(){
    console.log('-------------')
    $

    scope.name = '佐助!';
    },2000);
    以上蓝色部分是不会修改其上name的因为js代码里面是没办法对其更改的
    $timeout(function () {
    $scope.name = "卡卡西";


    }, 4000);
    })
    </script>
    </body>
    第一次是鸣人
    2秒后便是小樱
    4秒后变为卡卡西
    六、过滤器:
    lowercase 格式化字符串为小写
    uppercase 格式化字符串为大写
    用法:注意中间管道符 |
    <div ng-app="myApp" ng-controller="personCtrl">
    <p>姓名为 {{ name | lowercase }}</p> 姓名为eee(转换为了小写)
    </div>
    angular.module('app',[])
    .controller('myApp',function($scope,$timeout){
    $

    scope.name = "EEE"
    })
    currency 过滤器(将数字格式化为货币格式)
    <div ng-app="myApp" ng-controller="personCtrl">
    <p>姓名为 {{ name | lowercase }}</p> 姓名为$123,456.00(转换为了小写)
    </div>
    angular.module('app',[])
    .controller('myApp',function($scope,$timeout){
    $

    scope.name = "123456" 数字
    })

    2、date 格式化
    {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25
    3、number 格式化(保留小数)
    {{149016.1945000 | number:2}}

    控制器
    ng-controller:控制器
    js在控制器里不执行

    <body ng-app="app" ng-controller="contr">

    <div>{{a*b}}</div>
    <div>你好{{name}}</div>

    <div ng-controller="contr1">
    <h1>{{name}}</h1>
    <h2>{{say()}}</h2>
    <h3>{{add(5,6)}}</h3>
    </div>

    <script>
    var app = angular.module("app",[]);//调用作用域
    app.controller("contr",function($scope){//调用controller的方法 $scope是自带的
    $scope.a= 3;
    $scope.b= 6;
    $scope.name = "世界";
    });
    app.controller("contr1",function($scope){
    $scope.name ="霍丽荣";
    $scope.say = function(){
    return "有道词典";
    }
    $scope.add = function(a,b){
    return a+b;
    }
    })

    第二种方法
    angular.module("app",[])//调用作用域
    .controller("contr",function($scope){//调用controller的方法 $scope是自带的
    $scope.a = 8;
    $scope.b = 10;
    $scope.name = "美丽";
    })
    .controller("contr1",function($scope){
    $scope.name = "天空";
    $scope.say = function(){
    return "蓝天";
    }
    })
    </script>

    </body>

    自定义过滤器
    <!DOCTYPE html>
    <html ng-app="app">
    <head>
    <meta charset="UTF-8">
    <title>自定义过滤器</title>
    <script src="js/angular.min.js"></script>
    </head>
    <body ng-controller="cont">
    <h1>{{name}}</h1>
    <h2>{{aa | currency}}</h2><!--货币-->
    <h3>{{name | gaib}}</h3>自定义过滤器
    <h4>{{name | gaib | jneng}}</h4>
    <script>
    var app = angular.module("app",[])
    app.controller("cont",function($scope){
    $scope.name = "今天";
    $scope.aa = 456;
    })
    app.filter("gaib",function(){//
    return function(ele){
    return ele + "好冷";
    }
    })
    app.filter("jneng",function(){//es6写法
    return (ele) => ele + "呼呼虎虎哈哈";
    })
    </script>

    </body>
    </html>

    ng-if
    判断是否正确 如果结果是true 那么就会显示 如果为false 那么就会隐藏
    例:
    <!DOCTYPE html>
    <html ng-app="app">
    <head>
    <meta charset="UTF-8">
    <title>ng-if</title>
    <script src="js/angular.min.js"></script>
    </head>
    <body ng-controller="cont">
    <h1 ng-if="name">
    八戒八戒傻得可爱
    </h1>
    <div ng-if="a<b">//隐藏 因为5不小于6
    正确
    </div>
    <script>
    var app = angular.module("app",[])
    app.controller("cont",function($scope){
    $scope.name = true;//显示
    $scope.a = 5;
    $scope.b = 6;
    })
    </script>
    </body>
    </html>

    1、$index 循环出来的是下标
    2、$first 第一个
    3、$last 最后一个
    4、$even 奇数行
    5、$odd 偶数行
    6、$middle 中间部分
    以下两个可用于两个兄弟标签的循环
    7、ng-repeat-start 开始
    8、ng-repeat-end 结束

  • 相关阅读:
    oo第二次总结
    oo第一次总结
    OO最后一次博客儿
    OO作业总结第三弹
    OO作业总结第二弹
    初学面向对象
    hi🎈
    散列函数及其应用
    结对项目作业
    构建之法第四,第十四章读书有感 (另补第十七章)
  • 原文地址:https://www.cnblogs.com/huolirong/p/8525263.html
Copyright © 2011-2022 走看看