学习AngularJS有这一篇就好了

一、AngularJS简介

  AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、依赖注入等等。
在这里插入图片描述

二、AngularJS四大特征

2.1 MVC模式

  Angular遵循软件工程的MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合.通过依赖注入(dependency injection),Angular为客户端的Web应用带来了传统服务端的服务,例如独立于视图的控制。 因此,后端减少了许多负担,产生了更轻的Web应用。

在这里插入图片描述
  Model:数据,其实就是angular变量($scope.XX);
  View: 数据的呈现,Html+Directive(指令);
  Controller:操作数据,就是function,数据的增删改查;

2.2 双向绑定

  AngularJS是建立在这样的信念上的:即声明式编程应该用于构建用户界面以及编写软件构建,而指令式编程非常适合来表示业务逻辑。框架采用并扩展了传统HTML,通过双向的数据绑定来适应动态内容,双向的数据绑定允许模型和视图之间的自动同步。因此,AngularJS使得对DOM的操作不再重要并提升了可测试性。

在这里插入图片描述

2.3 依赖注入

  依赖注入(Dependency Injection,简称DI)是一种设计模式, 指某个对象依赖的其他对象无需手工创建,只需要“吼一嗓子”,则此对象在创建时,其依赖的对象由框架来自动创建并注入进来,其实就是最少知识法则;模块中所有的service和provider两类对象,都可以根据形参名称实现DI.

2.4 模块化设计

  高内聚低耦合法则
    1)官方提供的模块 ng、ngRoute、ngAnimate
    2)用户自定义的模块 angular.module(‘模块名’,[ ])

三、入门学习

3.1 angularjs表达式

  表达式的写法是{{表达式 }} 表达式可以是变量或是运算式
  ng-app 指令 作用是告诉子元素一下的指令是归angularJs的,angularJs会识别的
  ng-app 指令定义了 AngularJS 应用程序的 根元素。
  ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>angularjs的表达式</title>
    <!-- 导入angularjs的基础文件 -->
    <script src="js/plugins/angularjs/angular.min.js"></script>
</head>
<body ng-app>
    <h1>angularjs的表达式</h1>
    <h2><span>{{</span>具体的表达式<span>}}</span></h2>
    <h2>算术表达式---{{100+200}}</h2>
    <h2>关系表达式---{{100 > 200}}</h2>
    <h2>逻辑表达式---{{(100>200) || (200>100)}}</h2>
    <h2>逻辑表达式---{{(100>200) && (200>100)}}</h2>
</body>
</html>

3.2 双向绑定

  ng-model 指令用于绑定变量,这样用户在文本框输入的内容会绑定到变量上,而表达式可以实时地输出变量。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>angularjs的双向绑定</title>
    <!-- 导入angularjs的基础文件 -->
    <script src="js/plugins/angularjs/angular.min.js"></script>
</head>
<body ng-app>
    <h1>angularjs的双向绑定</h1>
    <h2>双向--【html页面元素/angularjs变量】</h2>
    <h2>双向绑定--将html页面元素与angularjs中定义的某一个变量关联起来</h2>
    <h2>双向绑定效果--1.当html页面元素中的数据发生变化,那么与之对应angularjs中定义的变量的数据值就会发生变化;
                      2.当angularjs中定义的变量的数据值发生变化,那么与之对应的html页面元素中的数据就会发生变化;
        【同步】
    </h2>
    <h2>ng-model指令--双向绑定</h2>
    请输入姓名:<input  type="text" ng-model="myname"/><br>
    输出姓名:{{myname}}
</body>
</html>

3.3 初始化指令

  如果希望有些变量具有初始值,可以使用ng-init指令来对变量初始化

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>angularjs的初始化指令</title>
    <!-- 导入angularjs的基础文件 -->
    <script src="js/plugins/angularjs/angular.min.js"></script>
</head>
<body ng-app ng-init="myname='zhangsan'">
<h1>angularjs的初始化指令【ng-init】</h1>
<h2>作用:在html页面内打开的时候需要完成的动作,就要添加得到初始化指令</h2>
<h2>位置:body元素中</h2>
请输入姓名:<input  type="text" ng-model="myname"/><br>
</body>
</html>

3.4 控制器

  ng-controller用于指定所使用的控制器。
  理解 $ scope:是一个控制器与视图之间的进行数据交互的桥梁对象。
  $scope 的使用贯穿整个 AngularJS App 应用,它与数据模型相关联,同时也是表达式执行的上下文.有了 $ scope 就在视图和控制器之间建立了一个通道,基于作用域视图在修改数据时会立刻更新 $scope,同样的 $ scope 发生改变时也会立刻重新渲染视图.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>angularjs的控制器</title>
    <!-- 导入angularjs的基础文件 -->
    <script src="js/plugins/angularjs/angular.min.js"></script>
    <script>
        //创建模块
        var myapp=angular.module('myapp',[]);
        //创建控制器
        myapp.controller('mycontroller',function ($scope) {
            $scope.sum=function () {
                //parseInt()---将文本数据转换成数字
                return parseInt($scope.num1)+parseInt($scope.num2);
            }
        });
    </script>
</head>
<body ng-app="myapp" ng-controller="mycontroller">
<h1>angularjs的控制器</h1>
<h2>angularjs的控制器--定义保存变量和函数</h2>
<h2>1.控制器是需要由模块来创建,因此我们要会创建angularjs模块</h2>
<h2>2.创建模块的格式:angular.module('模块名称',[参数列表]);</h2>
<h2>3.创建控制器的格式:模块对象.controller('控制器名称',function($scope){});</h2>
<h2>4.$scope==全局</h2>
<h2>5.控制器中定义变量:$scope.myname="zhangsan"</h2>
<h2>6.控制器中定义函数:$scope.insert=function(){ };</h2>
第一个运算数字<input  type="text" ng-model="num1"/><br>
第二个运算数字<input  type="text" ng-model="num2"/><br>
加法运算结果:{{sum()}}
</body>
</html>

3.5 事件指令

  ng-click 是最常用的单击事件指令,再点击时触发控制器的某个方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>angularjs的点击事件</title>
    <!-- 导入angularjs的基础文件 -->
    <script src="js/plugins/angularjs/angular.min.js"></script>
    <script>
        //创建模块
        var myapp=angular.module('myapp',[]);
        //创建控制器
        myapp.controller('mycontroller',function ($scope) {
            $scope.sum=function () {
                //parseInt()---将文本数据转换成数字
                $scope.res=parseInt($scope.num1)+parseInt($scope.num2);
            }
        });
    </script>
</head>
<body ng-app="myapp" ng-controller="mycontroller">
<h1>angularjs的点击事件</h1>
<h2>ng-click:点击事件</h2>
<h2>ng-click="函数"</h2>
第一个运算数字<input  type="text" ng-model="num1"/><br>
第二个运算数字<input  type="text" ng-model="num2"/><br>
<input type="button" value="计算加法" ng-click="sum()"/><br>
运算结果:{{res}}
</body>
</html>

3.6 循环数组

  这里的ng-repeat指令用于循环数组变量。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>angularjs的循环</title>
    <!-- 导入angularjs的基础文件 -->
    <script src="js/plugins/angularjs/angular.min.js"></script>
    <script>
        //创建模块
        var myapp=angular.module('myapp',[]);
        //创建控制器
        myapp.controller('mycontroller',function ($scope) {
           //定义一个数组【String】
            $scope.namearray=["zhangsan","lisi","wangwu"];
            //定义一个对象型的数组【集合】
            $scope.stulist=[
                {stuid:1001,stuname:'zhangsan',stuage:23,stuaddress:'西安'},
                {stuid:1002,stuname:'lisi',stuage:24,stuaddress:'北京'},
                {stuid:1003,stuname:'wangwu',stuage:25,stuaddress:'上海'}
                 ];
        });
    </script>
</head>
<body ng-app="myapp" ng-controller="mycontroller">
<h1>angularjs的循环</h1>
<h2>ng-repeat指令用于循环数组/集合数据</h2>
<h2>ng-repeat="变量 in 数组/集合"</h2>
<h2>遍历数组</h2>
<ol>
    <li ng-repeat="name in namearray">{{name}}</li>
</ol>
<h2>遍历对象数组[集合]</h2>
<table border="1px" width="300px">
    <tr align="center">
        <td>学生编号</td>
        <td>学生姓名</td>
        <td>学生年龄</td>
        <td>学生地址</td>
    </tr>
    <tr align="center" ng-repeat="student in stulist">
        <td>{{student.stuid}}</td>
        <td>{{student.stuname}}</td>
        <td>{{student.stuage}}</td>
        <td>{{student.stuaddress}}</td>
    </tr>
</table>
</body>
</html>

  • 18
    点赞
  • 141
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值