AngularJS

一、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'  
   });  
}]);

你可能感兴趣的:(AngularJS)