码迷,mamicode.com
首页 > Web开发 > 详细

Angular Js

时间:2015-06-07 20:15:37      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:

上周接触到一个新的用于设计动态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的强大之处还有很多,那就让我们继续学习和探索下去。

Angular Js

标签:

原文地址:http://www.cnblogs.com/xiaomila/p/4558968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!