Angular:
SPAS:单页应用程序
MVC:
M(model):数据模型
V(view):视图
C(controller):控制器
控制器是用于协调数据模型和视图之间的关系,视图和模型都是相互独立的
为什么要使用MVC?
希望代码重用性更强,降低视图和数据模型的耦合度(粘连成都)
Anguler:
模块:每一个部分都可单独成立一个模块
指令:ng开头的属性,有特殊意义的属性
服务:自定义服务和内置服务
控制器:用于协调数据类型和视图->主要写逻辑的部分
路由:一条线进,多条线出
特征:允许使用MVC的方式书写代码
数据模型的双向绑定
模块:允许创建很多模块,必须有一个入口模块
入口模块与创建其他模块一样,可以通过ng-app指令指定哪一个模块是入口模块
指令:
ng-app:指定入口模块 | 指定angular的有效区域(作用域),一般都写在html或者body中
{
{}}:表达式、变量
注意:如果表达式或者指令失效
1、是不是没有写ng-app
2、表达式或者指令没有写在ng-app指定的范围之内
3、ng-app指定的入口模块名字是否错误
4、没有引入JS文件
ng-model:用于指定数据模型,用在输入框中
ng-bind:用于绑定数据模型
ng-repeat:类似于for in 用于遍历数组,这个指令写在哪个dom元素上面就会重复某一个dom元素
如果数组中有重复数据会报错,可以在遍历的时候通过track by来指定一个不重复的参考物($index)
ng-init:初始化数据模型
ng-class:用于设置元素类名
字符串:可以是变量也可以是具体的值
对象:key:类名,值:表达式 如果表达式是真的就会选择这个类
数组:可以使字符串也可以是对象
模块:
angular是一个对象,里面有一个叫imodule的函数需要传递个参数->
1.模块的名字。
2.需要使用其他模块的名字
angular.module(‘模块的名字’,[‘需要使用其他模块的名字’,’模块2’]);
创建完模块之后,可以通过ng-app指定入口模块 ->一个单页SPAS只能有1个入口模块
控制器:是angular里面的一个函数,controller需要传两个参数 ->
1.控制器的名字
2、回调函数
angular.module(‘app’,[]).controller(‘控制器的名字’,回调函数);
创建了控制器并不代表使用了控制器->需要在html中通过指令(ng-controller)来指定控制器的名字
<div ng-controller='控制器的名字'></div>
注意:控制器的名字不要写错
$scope
:控制器的作用域,类似命名空间,只能在当前的控制器中,使用$scope
上面的数据模型
模块的注入:
angular.