document.ready 文档加载完毕,window.onload:整个页面加载完毕
jquery JS函数库 封装简化dom操作
angular JS结构化框架 主体不是dom 而是页面中动态的数据
做什么:
构建单页面应用(spa),web app应用
SPA ( sigle page application)
1: 将所有的活动局限于一个页面
2:当页面中有部分数据发生变化,不用全部刷新,而是局部刷新,
3:利用ajax技术,路由。
*** ng-app(指令) : 告诉angular核心它管理当前标签所包含的整个区域,并且会自动创建 \$rootScope根作用域对象
*** ng-model : 将当前输入框的值与谁关联(属性名:属性值), 并作为当前作用域对象($rootScope)的属性,双向数据绑定!!!
{{}} (表达式) : 显示数据,从作用域对象的指定属性名上取
1、表达式:通常有一个返回值,可以放在任何需要值得地方,比如函数调用的参数,一个变量名,一个运算,
2、语句:通常表示一个完整的执行单位,一段完整的js可执行的代码,有的语句也可以用表达式来执行,叫做表达式语句。
3、区别:语句用封号结尾,有些语句我们没有加封号,比如console.log虽然我们没有加封号,但也是语句,因为js引擎会自动解析并且加上封号。js引擎在解析的时候会自动的加上封号
4、特例:if语句,就不用加封号 可也是完整的语句。
双向数据绑定
1. 数据绑定: 数据从一个地方A转移(传递)到另一个地方B, 而且这个操作由框架来完成
2. 双向数据绑定: 数据可以从View(视图层)流向Model(模型), 也可以从Model流向View
* 视图(View): 也就是我们的页面(主要是Andular指令和表达式)
* 模型(Model) : 作用域对象(当前为$rootScope), 它可以包含一些属性或方法
* 当改变View中的数据, Model对象的对应属性也会随之改变: ng-model指令 数据从View==>Model
* 当Model域对象的属性发生改变时, 页面对应数据随之更新: {{}}表达式 数据从Model==>View
* ng-model是双向数据绑定, 而{{}}是单向数据绑定
*** ng-init 用来初始化当前作用域变量。是单向数据绑定 从V流到M
1. 作用域对象: 查看'1_作用域与控制器.html' 此处的版本是1.2 为低版本!!!
* 一个js实例对象, ng-app指令默认会创建一个根作用域对象($rootScope)
* 它的属性和方法与页面中的指令或表达式是关联的
2. 控制器对象:
* 用来控制AngularJS应用数据的 实例对象
* ng-controller : 指定控制器构造函数, Angular会自动new此函数创建控制器对象
* 同时Angular还有创建一个新的作用域对象$scope, 它是$rootScope的子对象
* 在控制器函数中声明$scope形参, Angular会自动将$scope传入
依赖注入
依赖对象:完成某个特定的功能需要某个对象才能实现,这个对象就是依赖对象。
依赖注入:依赖的对象以形参的形式被注入进来使用,这种方式就是依赖注入。
angular的 ‘$scope’对象就是依赖对象,并且是依赖注入的形式进行使用。
!!!形参必须是特定的名称, 否则Angular无法注入抛异常
回调函数的event的就是依赖对象
回调函数有形参就是依赖注入
命令式:注重执行的过程
声明式:注重执行的结果
此后为1.5.* 高版本
1:创建模块对象
var myModule = angular.module('myApp',[]);
0:ng-app='myApp' 这里要和创建的模块名字相对应
2:生成作用域对象 (作用于可以生成多个,名字不能相同。返回对象是模块对象,所以可以在创建模块对象时使用链式操作) 查看'2_模块和控制器.html'
myModule.controller('myController',function($scope){ //此处必须使用$scope,否则angular不认
//这里面的内容同之前的作用域内容
$scope.getname='baby';
})
//这种方式在压缩的时候会出错,js代码在压缩的时候会把参数用abcd等字母代替,此时angular不认。
解决方法:
myModule.controller('myController',[$scope,function($scope){//显示声明依赖注入
//这里面的内容同之前的作用域内容
$scope.getname='baby';
}])
0:ng-controller='myController' 作用于的范围
1. 使用Angular表达式:
语法: {{expression}}
作用: 显示表达式的结果数据
注意: 表达式中引用的变量必须是当前域对象有的属性(包括其原型属性)
2. 操作的数据
基本类型数据: number/string/boolean
undefined, Infinity, NaN, null解析为空串: "", 不显示任何效果
对象的属性或方法
数组
常用指令 查看'2_常用指令1.html'