学习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 指令在网页加载完毕时会自动引导(自动初始化)应用程序。

angularjs的表达式

angularjs的表达式

{{具体的表达式}}

算术表达式---{{100+200}}

关系表达式---{{100 > 200}}

逻辑表达式---{{(100>200) || (200>100)}}

逻辑表达式---{{(100>200) && (200>100)}}

3.2 双向绑定

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

angularjs的双向绑定

angularjs的双向绑定

双向--【html页面元素/angularjs变量】

双向绑定--将html页面元素与angularjs中定义的某一个变量关联起来

双向绑定效果--1.当html页面元素中的数据发生变化,那么与之对应angularjs中定义的变量的数据值就会发生变化;

2.当angularjs中定义的变量的数据值发生变化,那么与之对应的html页面元素中的数据就会发生变化;

【同步】

ng-model指令--双向绑定

请输入姓名:

输出姓名:{{myname}}

3.3 初始化指令

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

angularjs的初始化指令

angularjs的初始化指令【ng-init】

作用:在html页面内打开的时候需要完成的动作,就要添加得到初始化指令

位置:body元素中

请输入姓名:

3.4 控制器

ng-controller用于指定所使用的控制器。

理解 $ scope:是一个控制器与视图之间的进行数据交互的桥梁对象。

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

angularjs的控制器

angularjs的控制器

angularjs的控制器--定义保存变量和函数

1.控制器是需要由模块来创建,因此我们要会创建angularjs模块

2.创建模块的格式:angular.module('模块名称',[参数列表]);

3.创建控制器的格式:模块对象.controller('控制器名称',function($scope){});

4.$scope==全局

5.控制器中定义变量:$scope.myname="zhangsan"

6.控制器中定义函数:$scope.insert=function(){ };

第一个运算数字

第二个运算数字

加法运算结果:{{sum()}}

3.5 事件指令

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

angularjs的点击事件

angularjs的点击事件

ng-click:点击事件

ng-click="函数"

第一个运算数字

第二个运算数字


运算结果:{{res}}

3.6 循环数组

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

angularjs的循环

angularjs的循环

ng-repeat指令用于循环数组/集合数据

ng-repeat="变量 in 数组/集合"

遍历数组

  1. {{name}}

遍历对象数组[集合]

学生编号 学生姓名 学生年龄 学生地址
{{student.stuid}} {{student.stuname}} {{student.stuage}} {{student.stuaddress}}