angularJS
- 定义应用:ng-app指令
- 指令:就是angularJS扩展的html属性
- 功能:指定ng管理的范围
- 一般情况下,ng-app指定给body标签,一个页面最多只能写一个ng-app指令,写在body表示body被angularJS管理。
- 相当于定义了一个应用,名字叫做ng-app属性的值。
- 创建模块来管理ng-app指定的内容;
- 定义模块:
- AngularJS提供了一个全局对象angular,调用该全局对象的module()方法可以创建一个模块.该方法返回一个模块对象.这个模块对象就是AngularJS用来管理应用的对象.
- module()
- 定义控制器
- 接下来我们可以通过app模块对象来创建控制器.
- 调用app模块对象的controller方法,就可以创建控制器.
- 为html元素指定1个ng-controller属性.值为创建controller的第1个参数的值.
- 数据模型
- 控制器负责处理制造模型数据.
- 视图负责显示控制器制造的模型数据.
常用内置指令
- html的最大的不足 功能单一.ng扩展了一些html属性和标签弥补这个不足.
- 指令:本质就是ng扩展的html属性;ng的属性都是以ng-开头
- ng-app:指定ng管理的范围
- 注意的地方
- ng-app 什么时候给值什么时候不给
- 如果需要创建MVC那么必须有值,如果不需要用到MVC,那么不用给值。
- ng-controller:指定与控制器关联的视图
- ng-show:指定的元素是否显示,
- 取值可以是bool类型,true代表显示,false代表隐藏。
- 取值还可以表达式
- ng-hide:指定的元素是否隐藏,true隐藏,原理同上
- ng-if:决定是否要将元素创建在DOM树上
- 取值 :bool值
- 用法同上
- ng-src:增强路径
- ng-href:增强路径
- ng-class:决定指令的css类样式是否作用在标签身上
- 值是对象 {类名:bool值/变量/表达式}
- ng-include:将另外一个文件的内容包含进来,可以将页面公共部分写在单独的文件中,用ng-include将其包含进来
- ng-disabled 是否禁用表单
- bool值,true表示禁用,false不禁用
- ng-readonly 原理同上
- ng-checked 原理同上
- ng-selected 原理同上
- ng-init
- 以指令的方式去初始化一个变量的值.而不用放在控制器中.
- 它只适合去初始化一些简单的数据.
- 一些复杂的数据放在控制器中初始化更方便一些.
自定义指令
调用模块对象的directive指令,就可以自定义指令
参数1:指令名
- 注意:在为自定义属性取名的时候,如果使用的是驼峰命名法(hmTag),那么在使用的时候中间应该加-(hm-tag)
参数2:回调函数
当解析这个自定义指令的时候,就会执行这个回调函数.这个回调函数要按照规范返回1个对象.在对象中通过键值对的方式来指定自定义指令的作用
restrict: 代表自定义指令的类型.
123456E: Element 自定义标签.C: Class CSS类M: 注释A: 属性.取值可以是其中的任意1个 或者多个的组合.template: 模板.
replace: bool值 指定是否替换原有的标签.
数据的单向绑定
|
|
数据双向绑定
|
|
事件处理
- AngularJS的事件机制.
- 原生的事件处理机制.ng认为会存在全局污染.
- ng通过指令的方式为元素绑定事件.
- 要绑定点击事件:那么就为元素设置一个指令: ng-click
- 指定ng-clcik调用的函数. ng-click=”demo()”
- 而demo()函数是定义在$scope中的. 在控制器
- 其它的事件的套路是一样的.
- onmouseover
- ng-mouseover
数据处理
- ng-repeat
- 作用:重复生成HTML标签
- 可以遍历数组,数组中有重复元素会报错
- 还可以遍历对象,拿到的是对象每一个属性的值,如果需要拿到属性名,可以写 (key,value) in stu;key代表属性名,value代表属性值
- ng-switch
- 判断一个变量或表达式的值,匹配一个选择,匹配上的值会被选上,匹配不上则不选
- 一般用法:
- ng-switch=”判断的变量”
- ng-switch-when=”值1”
- ng-switch-when=”值2”
- ng-switch-defalut
- 数据模型一旦发生变化,angular会自动刷新dom