AngularJS入门

AngularJS入门

引入AngularJS文件

​ 我们在使用AngularJS之前,需要先引入AngularJS的文件

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

启动引擎

​ ng-app命令:启动引擎

​ 在引入AngularJS文件后,其并不会直接生效,我们需要在使用AngularJS的页面中,使用ng-app命令来加载引擎。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AngularJS-Demo1</title>
    <script src="../js/angular.min.js"></script>
</head>
<body ng-app>
    {{100+100}}
</body>
</html>

​ 此时,html中{{}}中的内容就会被计算,否则输出的仍是常量。

AngularJS的{{}}

​ 在前端页面中如果正确引用了AngularJS文件,也启动了引擎,那么在{{}}中就可以输出AngularJS的变量值。

ng-model:双向绑定

​ 在AngularJS中可以在标签中加入ng-model属性,用于绑定标签的值,这个变量的值在angularJS的全局作用域中只要发生了改变,这个标签的值也会发生相应的改变。标签的值发生了改变,那么这个变量也会随之改变,这就是双向绑定。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AngularJS-demo2</title>
    <script src="../js/angular.min.js"></script>
</head>
<body ng-app>
    请输入姓名:<input ng-model="name">
    我也是姓名:<input ng-model="name">
    {{name}}
</body>
</html>

ng-init初始化

​ 在angular中ng-init指令用于初始化,即加载页面就执行的内容,一般配合方法使用,这里展示一个ng-init的实例。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AngularJS-demo2</title>
    <script src="../js/angular.min.js"></script>
</head>
<body ng-app ng-init="name='jack'">
    请输入姓名:<input ng-model="name">
    我也是姓名:<input ng-model="name">
    {{name}}
</body>
</html>

ng-app:建立模块

​ var app = angular.mudule("模块名",[]);

​ 上述代码创建一个angularJS的模块,模块中我们可以写自己的实现代码,有了模块才能进一步的书写代码。

ng-controller :创建控制器

​ 此命令用于创建控制器,控制器中我们可以书写js代码,创建方法、声明变量。等一系列的操作。

​ 创建控制器的时候需要传入两个参数

​ 参数1:控制器名称

​ 参数2:方法体

 <script>
        //建立模块
        var app = angular.module("myApp",[]);
        //创建控制器
        app.controller("myController",function ($scope) {

        });
    </script>

​ 使用控制器需要在前端页面的body标签中引入模块和控制器

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

ng-click:事件指令

​ 在angularJS中同样提供了一系列的事件操作的指令,其中最常用的一个当属ng-click指令。

​ 用法:在标签中加入ng-click指令,即可绑定单击事件,事件需要在ng-click中通过$scope声明。

案例:计算两个数的和

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>angularJS-demo4-控制器</title>
    <script src="../js/angular.min.js"></script>
    <script>
        //建立模块
        var app = angular.module("myApp",[]);
        //创建控制器
        app.controller("myController",function ($scope) {

            //结果
            $scope.result = 0;

            //计算结果
            $scope.getResult = function() {
                $scope.result = parseInt($scope.num1)+ parseInt($scope.num2);
            }
        });
    </script>
</head>
<body ng-app="myApp" ng-controller="myController">
    第一个数字:<input type="text" ng-model="num1">
    第二个数字:<input type="text" ng-model="num2">
    <button ng-click="getResult()">计算</button>
    结果:{{result}}
</body>
</html>

注意:如果使用的是谷歌浏览器,AngularJS很容易出现缓存导致结果运行不出的情况,如果出现这种情况可以清空缓存再重试即可。

ng-repeat循环和迭代

​ 在我们开发过程中,会进行大量的页面展示,其中会用到循环。angularJS提供了很方便的循环操作。它的用法类似于jsp中的c:foreach,接下来我们来通过一个案例介绍一下其用法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo5-循环</title>
    <script src="../js/angular.min.js"></script>
    <script>
        //创建模块
        var app = angular.module("myApp",[]);
        //创建控制器
        app.controller("myController",function ($scope) {
            //创建数组
            $scope.list = [1,3,5,7,9];
        });
    </script>
</head>
<body ng-app="myApp" ng-controller="myController">
    <table>
        //迭代数组
        <tr ng-repeat="item in list">
            //展示数据
            <td>{{item}}</td>
        </tr>
    </table>
</body>
</html>

使用$http发送http请求

​ 在开发过程中,必然是要从后台查询数据的,angularJS为我们提供的解决方案就是$http。

​ 首先,在controller中需要先引入$http.

​ 然后就可以在controller中的方法中使用$http发送请求,获取数据。

    <script src="../js/angular.min.js"></script>
    <script>
        //创建模块
        var app = angular.module("myApp",[]);
        //创建控制器
        app.controller("myController",function ($scope,$http) {
            //查询
            $scope.findList = function () {
                //TODO 此处存在跨域问题 暂未解决
                $http.post("../json/data.json").success(function (response) {
                    $scope.list = response;
                });
            }
        });
    </script>

ng-init初始化

​ 在页面加载的时候,我们经常会做一些查询操作,这个时候往往需要调用js方法,对于这种需求,AngularJS也为我们提供了对应的解决方案。

​ 在body标签中加入ng-init="method()",就会在页面加载到时候为我们执行method方法。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>$http</title>
    <script src="../js/angular.min.js"></script>
    <script>
        //创建模块
        var app = angular.module("myApp",[]);
        //创建控制器
        app.controller("myController",function ($scope,$http) {
            //查询
            $scope.findList = function () {
                //TODO 此处存在跨域问题 暂未解决
                $http.post("../json/data.json").success(function (response) {
                    $scope.list = response;
                });
            }
        });
    </script>
</head>
<body ng-app="myApp" ng-controller="myController" ng-init="findList()">
    <table>
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>数学成绩</th>
        </tr>
        <tr ng-repeat="item in list">
            <td>{{item.name}}</td>
            <td>{{item.age}}</td>
            <td>{{item.math}}</td>
        </tr>
    </table>
</body>
</html>

原文地址:https://www.cnblogs.com/zhangruifeng/p/12666614.html