angularjs入门

 

 

 

 

*******************************重要*********************************

angularJS是通过操作json对象,来操作页面元素的前端框架

 

 

 

$event:使用

angularjs入门

 

 

自定义服务

 

angularjs入门

 

angularjs入门

 

 

 

angularJS的继承

 

 

先定义父类controller——————>baseController

 

angularjs入门

 

 

angularjs入门

 

 

 

 

一、四大特性

 

MVC

双向数据绑定

依赖注入

模块化开发

M:

Model:数据,其实就是angular变量($scope.XX);

1.ng-model:绑定变量到$scope

2.获取:$scope.变量名

3.{{变量名}}

上面三个任何一个改变,

其他两个都将改变

 

 

 

V:

View:数据的现,

Html+Directive(指令);

ng-bind/{{}},{{}}是ng-bind的简写

 

C:

Controller:操作数据,就是function,数据的增删改查;

 

angularjs入门

function($http,$scope){

     //注入$http,$scope

}

angularjs入门

1)官方提供的模块           ng、ngRoute、ngAnimate

   2)用户自定义的模块     angular.module('模块名',[ ])

 

二、angularJS使用步骤:

 

 

1.声明

angularjs入门

 

2.初始化:

angularjs入门

 

 

 

 

 

 

 

分层使用(企业常用)

 

angularjs入门

 

angularjs入门

 

 

三、angularJS的demo

1.angular表达式             

<!DOCTYPE html>

<html>

     <head>

         <meta charset="utf-8" />

         <title></title>

         <script src="js/angular.min.js"></script>

     </head>

     <!--必须添加ng-app指令,angular引擎才能生效

         表达式的写法是{{表达式 }} 表达式可以是变量或是运算式

         ng-app 指令定义了 AngularJS 应用程序的 根元素。

     -->

     <body ng-app>

         <h3>angular表达式</h3>

         {{200+100}}

     </body>

</html>

 

2.angular双向绑定         

<!DOCTYPE html>

<html>

     <head>

         <meta charset="UTF-8">

         <title></title>

         <script src="js/angular.min.js"></script>

     </head>

     <!--

         ng-model指令用于绑定变量,这样用户在文本内框输入的内容会绑定到变量上

         表达式可以实时输出变量

     -->

     <body ng-app>

         请输入姓名:<input ng-model="name"/>

         {{name}}

     </body>

</html>

 

 

03 angular初始化指令

<!DOCTYPE html>

<html>

     <head>

         <meta charset="UTF-8">

         <title></title>

         <script src="js/angular.min.js"></script>

     </head>

     <!--ng-init

         页面加载时,初始化变量/或者函数

     -->

     <body ng-app="" ng-init="name = '吴特刚'">

         请输入<input ng-model="name" />

         {{name}}

         

     </body>

</html>

 

04 angular控制器

<!DOCTYPE html>

<html>

     <head>

         <meta charset="UTF-8">

         <title></title>

         <script src="js/angular.min.js"></script>

         <script>

         /*

          * 定义模块

          * 参数一:模块名(myApp)

          * 参数二:[]数组,引用其他模块

          */

         var app = angular.module('myApp',[]);         

         /**

          * 创建控制器

          * 参数一:控制器名(myController)

          * 参数二:function,里面定义控制器的方法

          *       $scope:控制层与视图层交换数据的桥梁

          */

         app.controller('myController',function($scope){

              $scope.add = function(){

                  return parseInt($scope.x)+parseInt($scope.y);

              }

              

         })

         

         </script>

     </head>

     <body ng-app="myApp" ng-controller="myController">

         第一个数:<input ng-model="x" />

         第二个数:<input ng-model="y"/>

         {{add()}}

     </body>

</html>

 

05 angular事件指令

<!DOCTYPE html>

<html>

     <head>

         <meta charset="UTF-8">

         <title></title>

         <script src="js/angular.min.js"></script>

         <script>

         /*

          * 定义模块

          * 参数一:模块名(myApp)

          * 参数二:[]数组,引用其他模块

          */

         var app = angular.module('myApp',[]);         

         /**

          * 创建控制器

          * 参数一:控制器名(myController)

          * 参数二:function,里面定义控制器的方法

          *       $scope:控制层与视图层交换数据的桥梁

          *       z:在控制层和视图层都可以使用

          */

         app.controller('myController',function($scope){

              $scope.add = function(){

                  $scope.z = parseInt($scope.x)+parseInt($scope.y);

              }

              

         })

         

         </script>

     </head>

     <body ng-app="myApp" ng-controller="myController" ng-init="z = '0'">

         第一个数:<input ng-model="x" />

         第二个数:<input ng-model="y"/>

         第三个数Z:{{z}}

         <!--绑定单击事件-->

         <button ng-click="add()">相加</button>

     </body>

</html>

 

06 angular循环普通数组

<!DOCTYPE html>

<html>

     <head>

         <meta charset="UTF-8">

         <title></title>

         <script src="js/angular.min.js"></script>

         <script>

              //定义模块

              var app = angular.module('myApp', []);

              //定义控制器

              app.controller('myController', function($scope) {

                  $scope.list = [100, 101, 102, 103, 104, 105];

              })

         </script>

     </head>

     <body ng-app="myApp" ng-controller="myController">

         <table>

              <!--循环遍历数组(和jsp中的foreach类似)

                  x:循环的元素

                  in:固定写法

                  list:需要遍历的数组

                  ng-repeat:循环tr就把ng-repeat指令添加到tr上

              -->

              <tr ng-repeat="x in list">

                  <td>{{x}}</td>

              </tr>

         </table>

     </body>

</html>

 

07 angular循环对象数组

<!DOCTYPE html>

<html>

     <head>

         <meta charset="UTF-8">

         <title></title>

         <script src="js/angular.min.js"></script>

         <script>

              //定义模块

              var app = angular.module('myApp', []);

              //定义控制器

              app.controller('myController', function($scope) {

                  //循环遍历对象数组

                  $scope.list = [

                       {name:"张三",shuxue:100,yuwen:80},

                       {name:"李四",shuxue:50,yuwen:40},

                       {name:"王五",shuxue:5,yuwen:10},

                  ];

              })

         </script>

     </head>

     <body ng-app="myApp" ng-controller="myController">

         <table border="1px">

              <tr>

                  <td>编号</td>

                  <th>姓名</th>

                  <th>数学</th>

                  <th>语文</th>

              </tr>

              <!--类似增强for

                循环tr,就把ng-repeat指令添加到tr标签上

                $index:索引,从0开始

                -->

              <tr ng-repeat="x in list">

                  <td>{{$index}}</td>

                  <td>{{x.name}}</td>

                  <td>{{x.shuxue}}</td>

                  <td>{{x.yuwen}}</td>

              </tr>

         </table>

     </body>

</html>

 

08 angular内置服务($http)(发送请求,相当于ajax请求)

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/angular.min.js"></script>

    <script>

        //定义模块

        var app = angular.module("myApp", []);

        //定义控制器

        app.controller("myController", function ($scope, $http) {

            //定义一个函数

            $scope.findList = function () {

                /**

                 * 发送请求(相当于发送ajax请求)

                  get(url?参数)/post(url,参数一般是json格式)

                 * success:相当于ajax请求回调函数

                 * response(不一定是response,也可以是其他变量aa,bb,cc):

                    响应的数据,(相当于ajax请求回调函数中的data)

                 */

                $http.get("data.json").success(

                    function (response) {

                        $scope.list = response;

                    }

                );

            }

        });

    </script>

</head>

<body ng-app="myApp" ng-controller="myController" ng-init="findList()">

<table border="1px">

    <tr>

        <th>姓名</th>

        <th>数学</th>

        <th>语文</th>

    </tr>

    <!--类似增强for-->

    <tr ng-repeat="x in list">

        <td>{{x.name}}</td>

        <td>{{x.shuxue}}</td>

        <td>{{x.yuwen}}</td>

    </tr>

</table>

</body>

</html>