一、AngularJS是什么?
AngularJs是一个用于设计动态web应用的结构框架。首先,它是一个框架,不是类库,是像EXT一样提供一整套方案用于设计web应用。
二、AugularJS特性
angular引入了一些非常棒的特性,包括模板机制、数据绑定、模块、指令、依赖注入、路由。通过数据与模板的绑定,能够让我们摆脱繁琐的DOM操作,而将注意力集中在业务逻辑上。AngularJS有五个最重要的功能和特性:
特性一:双向的数据绑定
特性二:模板
特性三:MVC
特性四:服务和依赖注入
特性五:指令(directives)
三、指令
通过使用模板,可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的。模板中可以使用的东西包括以下四种:
1.指令:ng提供的或者自定义的标签和属性,用来增强HTML表现力;
2.标记:即双大括号{{}},可将数据单向绑定到HTML中;
3.过滤器:用来格式化输出数据;
4.表单控制:用来增强表单的验证功能。
1)样式相关的指令
ng-class用来给元素绑定类名
ng-style用来绑定元素的css样式
对于比较常用的元素显隐控制,ng也做了封装,ng-show和ng-hide的值为boolean类型的表达式,当值为true时,对应的show或hide生效。框架会用display:block和display:none来控制元素的显隐。
2)表单控件功能相关指令
ng-checked控制radio和checkbox的选中状态
ng-selected控制下拉框的选中状态
ng-disabled控制失效状态
3)事件绑定相关指令
ng-change
ng-dblclick
ng-mousedown
ng-mouseenter
ng-mouseleave
ng-mousemove
ng-mouseover
ng-mouseup
ng-submit
4)特殊的ng-src和ng-href
5)自定义指令restrict中可以分别设置:
A匹配属性
E匹配标签
C匹配class
M匹配注释
四、自定义服务
//使用$provide来定义
var app = angular.module('MyApp', [], function($provide) {
$provide.factory('remoteData', function() {
var data = {name:'n',value:'v'};
return data;
});
});
//使用factory方法
app.factory('remoteData',function(){
var data = {name:'n',value:'v'};
return data;
});
//使用service方法
app.service('remoteData',function(){
this.name = 'n';
this.value = 'v';
});
五、路由示例
路由的使用方式及步骤:为demoApp添加一个路由,代码如下:
demoApp.config(['$routeProvider',function($routeProvider) {
$routeProvider.when('/list', {
templateUrl: 'route/list.html',
controller: 'routeListController'
}).when('/list/:id', {
templateUrl: 'route/detail.html',
controller: 'routeDetailController'
}).otherwise({
redirectTo: '/list'
});
}]);