标签:
上周接触到一个新的用于设计动态web应用的结构框架叫做Angular Js,它跟jquery的使用方式有很大不同。Angjular Js运用模板机制、数据绑定、模块、指令、依赖注入、路由。通过数据与模板的绑定,让我们在编程的过程中不用去写那些繁琐的DOM操作。
AngularJS最适于开发客户端的单页面应用。它专注于扩展HTML的功能,提供动态数据绑定,而且它能跟其它框架合作融洽。
如果你要开发的是单页应用,AngularJS就是你的上上之选。但是像游戏开发之类对DOM进行大量操纵、又或者单纯需要极高运行速度的应用,就不是AngularJS的用武之地了。
那么我就来跟大家分享一下AngularJs的一些优秀特性。首先不得不提的是Angular JS的双向绑定,如果是传统的DOM方式程序员把input里面的数据显示在另一个表格中,需要很多次的DOM 操作,首先要获取输入的数值,然后获取需要添加的单元格之后通过html添加进表格。这无疑需要很多的代码才能实现。但是在Angular Js中就显得方便多了,只需要通过ng-model属性把input和表格单元格进行双向的绑定,那么input输入的数值会马上反应出来,渲染在页面上,而传统方式可能还需要进行字符串的拼接。
这里有一个非常简单的例子,用来演示一个input输入框和<h1>元素的双向绑定。
<!doctype html>
<html ng-app="demoApp">
<head>
<script src="./js/angular.min.js"></script>
</head>
<body>
<div>
<label>Name:</label>
<input type="text" ng-model="user.name" placeholder="请输入名字">
<hr>
<h1>Hello, {{user.name}}!</h1>
</div>
</body>
</html>
Angular Js还才用了一种叫做依赖注入的子系统,也就是说你需要什么就直接问它要什么就是了,不需要我们去主动寻找,那么在代码中是怎么实现的呢?比如,我们需要一个东西,DI负责找创建并且提供给我们。
为了而得到核心的AngularJS服务,只需要添加一个简单服务作为参数,AngularJS会侦测并且提供给你,你就可以直接拿来用了。当然除了这些还有一个叫过滤器的功能也是我个人比较喜欢的。同样是非常强大的 ,过滤器正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果。主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等。过滤器通常是伴随标记来使用的,将你model中的数据格式化为需要的格式。表单的控制功能主要涉及到数据验证以及表单控件的增强。当然这个时候很多人会问,他提供的过滤器有限,万一没有我需要的过滤器怎么办呢,那么我们还可以自己定义需要的过滤器,使用模板的过滤器方法,返回一个函数,该函数接收输入值,并返回处理后的结果。比如我需要一个过滤器,它可以返回一个数组中下标为奇数的元素,代码如下:
app.filter(‘odditems‘,function(){
return function(inputArray){
var array = [];
for(var i=0;i<inputArray.length;i++){
if(i%2!==0){
array.push(inputArray[i]);
}
}
return array;
}
});
自定义的过滤器的格式就是这样,你的处理逻辑就写在内部的那个闭包函数中。你也可以让自己的过滤器接收参数,参数就定义在return的那个函数中,作为第二个参数,或者更多个参数也可以。
除了介绍到的这些特性,当然Angular Js的强大之处还有很多,那就让我们继续学习和探索下去。
标签:
原文地址:http://www.cnblogs.com/xiaomila/p/4558968.html