AngularJs是什么
- AngularJs是一款MVVM结构的前端框架。他分为M-model(数据层),V-view(视图层),VM-viewModel(视图模型层)。其中V与VM实现了双向数据绑定(具体的实现方法是通过内部的$digest也就是脏值查询实现的)。VM与M实现数据的交互
AngularJs能做什么
- AngularJs通过内部的各种功能实现了在不操作DOM树(当然内部封装指令时会调用DOM方法)的情况下根据需要实时渲染前端页面、与后端交互。并且实现了模块化。是一款在不断的使用中可以不断健壮的框架。
AngularJs怎么做
Angular通过各种内部的功能组合实现前端页面实时渲染。具体如下
指令
- 凡是以ng-或者data-ng-为前缀的都是angularJS的内置指令
- 指令分为内置指令和自定义指令,自定义指令通过mod.directive()方法产生
指令有4种调用方法,即“ECMA”。
E-element 作为元素标签调用
1<abcd></abcd>C-class 作为类调用
1<div class="abcd"></div>M-comment 作为注释调用,指令内的replace:true,且注释前后有2个空格
1<!-- directive:zfpx -->A-attribute 作为元素属性调用
1<div abcd></div>
- ng-app :angular起始位置,会形成$scope根目录
- ng-class :两种用法 ‘{true:”c1”,false:”c2”}[flag]’ ‘{c1:flag1,c2:flag2}’
- ng-init :初始化数据
- ng-if :控制元素是否存在,会形成自己的作用域,如果不存在内部作用域也会销毁
- ng-show :控制元素显示隐藏,即使隐藏了内部指令还会执行
- ng-hide :与show相反
- ng-include :引入html片段
- ng-model :用在表单元素上,存储value值,实现数据双向绑定
- ng-repeat :迭代DOM元素,会形成自己的作用域。当遍历重复数据会报错, track by $index解决
- ng-style :动态增加行内样式
- ng-src
- ng-href
- ng-change
- ng-model-options
- ng-click
- ng-bind
- ng-bind-template
- ng-cloak :解决闪烁,需要在加载的时候给一个隐藏样式
表达式
1{{}}- 实现DOM中的数据与作用域$scope数据的绑定
- 可以放文字,变量,运算符,其中变量可以存储字符串、数组、对象等
##Angular 内部运行的三个阶段
- 加载阶段 :引入angular开始到对指令解析前
- 编译阶段 : template replac transclude compile
- 链接阶段 : link实现与作用域的绑定,如果当前没有形成在自己的作用域,scope指向上一级作用域