angularJS 入门基础

angular   

所有用到的库, 全部用的CDN:

代码如下:

<script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>

.angular的数据绑定实例,这个是最基础的,angular的所有枝叶全部从这里开始:.

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            angular最强大的东西,数据的绑定binding
        </div>
        <div class="panel-body">
            <div id="bind" ng-controller="bf">
                <input type="text" ng-model="data" />
                {{data}}
                <script>
                    app.controller("bf", function($scope) {
                        $scope.data = "testData";
                        //$scope.$apply();
                    });
                </script>
            </div>
        </div>
    </div>
</body>
</html>

通过angular,展示数组对应的数据;.

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            通过angular,展示数组对应的数据;
        </div>
        <div class="panel-body">
            <div id="arr-bind" ng-app="arr-app" ng-controller="arrCon">
                <style>
                    .s{
                        color:#f00;
                    }
                    li{
                        cursor: pointer;
                    }
                </style>
                <ul>
                    <li ng-repeat="i in lists" ng-click="bered($index)" ng-class="{s : $index == flag}">
                        {{i.name}}----{{i.age}}
                    </li>
                </ul>
                <script>
                    //angular.module("arr-app", []);
                    function arrCon($scope) {
                        $scope.flag = 0;
                        $scope.bered = function(i) {
                            $scope.flag = i;
                        };
                        $scope.lists = [
                            {name : "hehe",
                                age:10},
                            {
                                name : "xx",
                                age : 20
                            },
                            {
                                name : "yy",
                                age : 2
                            },
                            {
                                name : "jj",
                                age : 220
                            }
                        ]
                    };
                </script>
            </div>
        </div>
    </div>
</body>
</html>

.数据过滤器的DEMO:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            数据过滤器;
        </div>
        <div class="panel-body" ng-controller="filte">
            {{sourCode}}
            <br>
            {{sourCode | up}}
        </div>
        <script>
            function filte($scope) {
                $scope.sourCode = "hehe lala dudu oo zz";
            };
            app.filter("up" ,function() {
                return function(ipt) {
                    return ipt.replace(/ (\w)/g,function($0,$1) {
                        return " "+$1.toUpperCase();
                    });
                }
            });
        </script>
    </div>
</body>
</html>

.factory工厂, $provider, service等等都是一样样的, 不要感觉很难, 其实就是看出一个数据模型或者实例就好了;:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div id="factory" class="panel panel-default">
        <div class="panel-heading">
            angular中的factory就相当于一个公用的实例方法,可以理解为一个多个控制器都可以用的函数;
        </div>
        <div  class="panel-body" ng-controller="factory">
            {{json}}
            <script>
                app.factory("ff", function() {
                    return {
                        "noting" : "json"
                    };
                });
                app.controller("factory", function($scope, ff) {
                    $scope.json = ff;
                });
            </script>
        </div>
    </div>
    <div class="panel panel-default">
        <div class="panel-title">
            angular的指令;
        </div>
        <div class="panel-body">
            <heh>do you content for?</heh>
            <script>
                app.directive("heh", function() {
                    return {
                        restrict : "AE",
                        replace : true,
                        transclude : true,
                        template : '<div> <button class="btn-danger" ng-transclude></button></div>'
                    };
                })
            </script>
        </div>
    </div>

</body>
</html>

.ng-switch指令的使用(这个跟模板很想的,就是我们常见的点击隐藏和显示Tab插件的angular首先)::

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            ng-switch的使用
        </div>
        <div class="panel-body" ng-controller="sw">
            <div ng-init="a=2">
                <ul ng-switch on="a">
                    <li ng-switch-when="1">1</li>
                    <li ng-switch-when="2">2</li>
                    <li ng-switch-default>other</li>
                </ul>
              </div>
              <div>
                  <button ng-click="a=1" class="btn btn-primary">test</button>
                  <button ng-click="a=2" class="btn btn-info">test</button>     
                  <button ng-click="a=3" class="btn btn-warning">test</button>
              </div>
        </div>
        <script type="text/javascript">
            app.controller("sw", function($scope) {
            });
        </script>
    </div>
</body>
</html>

ng-src和ng-href;

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            ng-src和ng-href的使用(如果使用src或者href的话,HTML初始化的时候就会加载,肯定是不行的)
        </div>
        <div class="panel-body" ng-controller="srcCon">
            <a ng-href="{{logo}}" >
                <img ng-src="{{logo}}" />
            </a>
        </div>
        <script type="text/javascript">
            app.controller("srcCon", function($scope) {
                $scope.logo = "http://www.mainbo.com/templets/images/logo.gif";
            });
        </script>
    </div>
</body>
</html>

如何操作页面的样式,这个直接改绑定的数据模型就好了:

代码如下:

<div class="panel panel-default">
        <div class="panel-heading">
            angular对样式进行操作;(jQ是手动选择元素对元素样式进行操作,angular提供了一种更屌的方法,把元素的属性赋值给一个变量,你只要改变这个变量即可)
        </div>
        <div class="panel-body">
            <hehe id="wh" ng-style="{width: w + 'px', height: h + 'px', backgroundColor: '#364'}">
                hehe--o(^▽^)o哇;
            </hehe>
        </div>
        <script type="text/javascript">
            app.directive("hehe", function() {
                function compile() {
                };
                return {
                    link : function($scope, $element) {
                        var obj = angular.element($element);
                        //obj.find不好用;
                        var add = obj[0].getElementsByClassName("add")[0];
                        var reduce = obj[0].getElementsByClassName("reduce")[0];
                        angular.element(add).bind("click", function(){
                            $scope.h = $scope.h+10;
                            apply();
                        })
                        angular.element(reduce).bind("click", function(){
                            $scope.h = $scope.h-10;
                            apply();
                        });
                        function apply() {
                            $scope.$apply();
                        }
                        return compile;
                    },
                    controller : function($scope) {
                        $scope.w = 200;
                        $scope.h = 50;
                        //$scope.$apply();
                    },
                    restrict: 'AE',
                    replace : true,
                    scope : "=ng-style",
                    transclude : true,
                    template : '<div><div ng-transclude></div><button class="btn btn-default add">+</button><button class="btn btn-default reduce">-</button></div>'
                }
            })
        </script>
    </div>

angular中的模板如何使用,这个要配合路由器使用比较叼:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            使用模板
        </div>
        <div class="panel-body" ng-controller="ngTpl">
                        <!---这个type要声明准确-->
            <script type="text/ng-template" id="tpl">
                {{ver}}
            </script>
                            <!---tpl是一个定值不是变量,要给变量要在scope中进行定义---->
            <div ng-include src="'tpl'"></div>
            <div class="well">
                <button ng-click="chan()">change</button>
            </div>
        </div>
        <script type="text/javascript">
            app.controller("ngTpl", function($scope) {
                function hehe(str) {
                    str = _.shuffle(str);
                    return str.join("")
                };
                $scope.ver = "var——ver--heehe";
                $scope.chan = function() {
                    $scope.ver = hehe( $scope.ver );
                };
            });
        </script>
    </div>
</body>
</html>

如何使用$scope.$watch实时改变绑定界面的模板:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            <span class="label label-danger">update</span>angular的通知数据更新三种方式$scope.$digest(),$scope.$apply(),以及通过$scope.$watch监听进行更新;
        </div>
        <div class="panel-body" ng-controller="apply">
            {{hehe}}
            <input type="text" ng-model="m0" />
            <div class="well">
                the value set by $scope.$watch ==>> {{wat}}
            </div>
            <br>
            <button ng-click="up()" class="btn btn-default">
                applay;
            </button>
        </div>
        <script type="text/javascript">
            app.controller("apply", function($scope) {
                $scope.hehe = "lll________xxx";
                $scope.m0 = 1;
                ss = $scope;
                $scope.up = function() {
                    $scope.hehe = $scope.m0;
                    //可以,但是给了提示的报错, 谁知道为甚毛?
                    //$scope.$apply();
                    $scope.$digest();
                };
                             //给$scope.m0变量是无效的;
                $scope.$watch("m0", function(va) {
                    $scope.wat = va;
                })
            });
        </script>
    </div>
</body>
</html>

angular中自己定义的工具方法

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            angular中的工具方法列表
        </div>
        <div class="panel-body">
            <ul  class="nav nav-pills nav-stacked">
              <li role="presentation"><a href="###">angular.bind</a></li>
              <li role="presentation"><a href="###">angular.bootstrap</a></li>
              <li role="presentation"><a href="###">angular.copy</a></li>
              <li role="presentation"><a href="###">angular.element</a></li>
              <li role="presentation"><a href="###">angular.equals</a></li>
              <li role="presentation"><a href="###">angular.extend</a></li>
              <li role="presentation"><a href="###">angular.forEach</a></li>
              <li role="presentation"><a href="###">angular.fromJson</a></li>
              <li role="presentation"><a href="###">angular.identity</a></li>
              <li role="presentation"><a href="###">angular.injector</a></li>
              <li role="presentation"><a href="###">angular.isArray</a></li>
              <li role="presentation"><a href="###">angular.isDate</a></li>
              <li role="presentation"><a href="###">angular.isDefined</a></li>
              <li role="presentation"><a href="###">angular.isElement</a></li>
              <li role="presentation"><a href="###">angular.isFunction</a></li>
              <li role="presentation"><a href="###">angular.isNumber</a></li>
              <li role="presentation"><a href="###">angular.isObject</a></li>
              <li role="presentation"><a href="###">angular.isString</a></li>
              <li role="presentation"><a href="###">angular.isUndefined</a></li>
              <li role="presentation"><a href="###">angular.lowercase</a></li>
              <li role="presentation"><a href="###">angular.module</a></li>
              <li role="presentation"><a href="###">angular.noop</a></li>
              <li role="presentation"><a href="###">angular.reloadWithDebugInfo</a></li>
              <li role="presentation"><a href="###">angular.toJson</a></li>
              <li role="presentation"><a href="###">angular.uppercase</a></li>
            </ul >
            <div class="well">
                这些工具方法跟其他库差不多;
                angular.element是anguarLite选择元素的小JQ;
                <br>
                angular.module是模块元素的方法;
            </div>
        </div>
    </div>
</body>
</html>

ng-transclude的使用(这个是官方的案例),代码如下:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            ng-transclude的使用(这个是官方的案例):
        </div>
        <div class="panel-body" ng-controller="ExampleController">
            <div>
              <input ng-model="title"><br>
              <textarea ng-model="text"></textarea> <br/>
              <pane title="{{title}}">{{text}}</pane>
            </div>
        </div>
        <script type="text/javascript">
        app.directive('pane', function(){
              return {
                restrict: 'E',
                transclude: true,
                scope: { title:'@' },
                template: '<div style="border: 1px solid black;">' +
                            '<div style="background-color: gray">{{title}}</div>' +
                            '<ng-transclude></ng-transclude>' +
                          '</div>'
              };
          })
          .controller('ExampleController', ['$scope', function($scope) {
            $scope.title = 'Lorem Ipsum';
            $scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...';
          }]);
        </script>
    </div>
</body>
</html>

一下验证邮箱准确性的例子:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            ngPaste以及ngMouseup和ngKeyup,ngModelOptions....等方法参考官方的使用,要用查API就好了,(官方的要FQ哦;)
        </div>
        <script src="https://yearofmoo.github.io/ngMessages/angular-messages.js"></script>
        <div class="panel-body" ng-controller="fromvaild">
            如果不用ng-message组件的错误提示如下;
        <form name="userForm">
          <div class="field">
            <label for="emailAddress">Enter your email address:</label>
            <input type="email" name="emailAddress" ng-model="data.email" required />
            <!-- this stuff is WAY too complex -->
            <div ng-if="userForm.emailAddress.$error.required" class="error">
              You forgot to enter your email address...
            </div>
            <div ng-if="!userForm.emailAddress.$error.required &&
                         userForm.emailAddress.$error.email" class="error">
              You did not enter your email address correctly...
            </div>
          </div>
          <input type="submit" />
        </form>
        <br>
        <a href="https://yearofmoo.github.io/ngMessages/">老外写的DEMO</a>
        </div>
        <script type="text/javascript">
            app.controller("fromvaild", function($scope) {
                //$scope.myField.$error = { minlength : true, required : false };
            })
        </script>
    </div>
</body>
</html>

setTimeout和setInterval都是经过angular包装过的,返回的是延迟对象的实例:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
    <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/underscore.js/1.7.0/underscore-min.js" type="text/javascript"></script>
</head>
<body ng-app="app">
    <script type="text/javascript">
           var app = angular.module("app",[]);
    </script>
    <div class="panel panel-default">
        <div class="panel-heading">
            $timeout和$interval,这两个服务;
        </div>
        <div class="panel-body" ng-controller="st">
            <div class="list-group">
                <a href="#" class="list-group-item active">
                    <h4 class="list-group-item-heading">setInterval</h4>
                    <p class="list-group-item-text">
                    $interval(fn, delay, [count], [invokeApply]);
                    </p>
                </a>
                <a href="#" class="list-group-item">
                    <h4 class="list-group-item-heading">timeout</h4>
                    <p class="list-group-item-text">
                    $timeout(fn, [delay], [invokeApply]);
                    </p>
                </a>
            </div>
            <div class="progress">
                <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 0%;">
                    0%
                </div>
            </div>
            <button class="btn-default btn" ng-click="prog()">
                start
            </button>
        </div>
        <script type="text/javascript">
            app.controller("st", function($scope,$element,$interval) {
                var $el = $($element[0]).find(".progress-bar");
                console.log(arguments);
                //使用angular.element选中的元素用find找不到东西;
                $scope.prog = function() {
                    var df = $interval(function() {
                        var val = parseInt($el.html())+4;
                        if(val>=104) $interval.cancel(df);
                        $el.html( val+"%" ).width(val+"%");
                    },100);
                    console.log(df)
                    //console.log(aa = $interval)
                };
            });
        </script>
    </div>
</body>
</html>

(0)

相关推荐

  • AngularJS入门心得之directive和controller通信过程

    AngularJS 通过新的属性和表达式扩展了 HTML.Angularjs学习起来也非常的简单. 1.AngularJS是何方神圣 Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作. AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了.这里AngularJS就应运而生

  • AngularJs 60分钟入门基础教程

    AngularJs是一个不错的用于开发SPA应用(单页Web应用)的框架.单页Web应用(single page web application,SPA),就是只有一张Web页面的应用.浏览器一开始会加载必需的HTML.CSS和JavaScript,所有的操作都在这张页面上完成,由JavaScript来控制不同view在这个页面上的呈现.本文源于Youtube上一个不错的AngularJs的入门教程视频:AngularJS Fundamentals In 60-ish Minutes,主要讲解了

  • AngularJS入门知识之MVW类框架的编程思想探讨

    本文通过实现两个简单的业务需求,探讨AngularJS和传统的JavaScript控制DOM实现方式的差别,并尝试理解MVW此类框架在流行的Web前端开发中的编程思想. 这个需求很常见,比如,一个两级菜单,在第一级别菜单项点击时候,对应的子菜单项目应该显示或隐藏. jQuery的实现: 复制代码 代码如下: <!-- html --> <ul class="parent">     <li class="parent_item">

  • AngularJS 2.0入门权威指南

    学习 Angular 2 当越来越多的 web app 使用 Angular 1构建的时候,更快更强大的 Angular 2 将会很快成为新的标准. Angular的新约定使得它更容易去学习.更快的去开发 app.通过本教程学习更快速.更强大的 Angular 版本. Angular 一个跨移动和桌面的框架 快速开始 本指南指导你如何构建一个简单 Angular app. 可以使用typescript/ JavaScript / Dart任意一种语言来编写Angular app,本教程采用Jav

  • AngularJS入门教程之学习环境搭建

    学习AngularJS的一个好方法是逐步完成本教程,它将引导您构建一个完整的AngularJS web应用程序. 该web应用是一个Android设备清单的目录列表,您可以筛选列表以便查看您感兴趣的设备,然后查看设备的详细信息. 本教程将向您展示AngularJS怎样使得web应用更智能更灵活,而且不需要各种扩展程序或插件. 通过本教程的学习,您将: 1.阅读示例学习怎样使用AngularJS的客户端数据绑定和依赖注入功能来建立可立即响应用户操作的动态数据视图. 2.学习如何使用AngularJ

  • Angular开发者指南之入门介绍

    什么是Angular AngularJS是动态Web应用程序的结构框架. 它允许您使用HTML作为模板语言,并允许您扩展HTML的语法以清晰,简洁地表达应用程序的组件.AngularJS的数据绑定和依赖注入消除了许多你不得不编写的代码.这一切都发生在浏览器中,使其成为任何服务器技术的理想合作伙伴. 动态应用程序和静态文档之间的动态适配常常通过以下方式解决 一个库:一组在编写网络应用程序时非常有用的函数.你的代码是负责在它调用库中它认为合适的. 例如jQuery 框架:Web应用程序的特定实现,其

  • AngularJS入门教程(二):AngularJS模板

    是时候给这些网页来点动态特性了--用AngularJS!我们这里为后面要加入的控制器添加了一个测试. 一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模式解耦代码和分离关注点.考虑到这一点,我们用AngularJS来为我们的应用添加一些模型.视图和控制器. 请重置工作目录: 复制代码 代码如下: git checkout -f step-2 我们的应用现在有了一个包含三部手机的列表. 步骤1和步骤2之间最重要的不同在下面列出.你可以到GitHub去

  • Angularjs 基础入门

    针对于这个其实我不太清楚应该针对于哪些人或者说不知道从哪开始写,所以这里我就按照一种简单的思路开始写 1.angular.element 2.angular.Bootstrap 我们非常清楚ng-app应用到节点,angular自动帮你初始化,初始化的过程分为如下几个步骤 1.angular会在document load的时候自动初始化,首先会找到ng-app这个指令指定的节点. 2.加载与module相关的指令 3.创建与应用相关的injector(依赖管理器) 4.以制定的ng-app为根节

  • AngularJS入门(用ng-repeat指令实现循环输出

    循环输出列表很多项目在web服务端做,前端做好模版后后端写jsp代码,双方需要紧密合作,分清责任.有些项目由后端提供restful方法,前端用ajax调用自己循环,这种一般是大把的jquery拼字符串,太不直观,有人搞出了js模板,也没好到哪里去. 用AngularJS就爽多了,语法和JSP类似: <!doctype html> <html ng-app> <head> <meta charset="utf-8"> <title&g

  • AngularJS快速入门

    怎么样快速了解AngularJS? 相信很多初学者都有过或者类似的疑问,其实这个问题没有标准的答案,每个人的技术背景.工作经验等等都不经相同,所以学习AngularJS的切入点肯定也就不同,我之前初略使用过knockoutjs,当我第一眼看到AngularJS的Helloworld案例后,顿时就被声明式的语法和强大的双向绑定特性所吸引. 其实AngularJS的官方网站首页的几个例子已经很好的展示了AngularJS的一些特性,下面我就从几个例子一步一步的讲解AngularJS吸引人的东西并且实

随机推荐