AngularJS框架速写
最近在把玩AngularJS框架,之前也看过流行的Backbone,不过AngularJS给人的感觉完全不同,它走的是一条高帅富之路。
按照官方的说法,AngularJS是一套依赖注入的MVC开发套件。JavaScript本身不具备实现传统的“依赖注入”的条件,我觉得即便是实现传统的MVC模式,也很难做到优雅大方,因为作为View层的HTML DOM,不具备原生扩展性,浏览器的渲染器也没有提供底层的方法让我们可以将界面元素和业务逻辑关联起来,必须依靠代码去实现,AngularJS巧妙地解决了这些问题,而且姿势相当漂亮。
在我看来,AngularJS的设计思想和Flash平台上的Robotlegs有很多相似之处,将大量重复性的编码工作隐藏在框架中,让开发者只需要关注程序的业务逻辑和结构,自然地,开发效率得到了质的飞跃。
下面是文档中的一个简单例子:
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.2.0-rc.2/angular.min.js"></script>
</head>
<body>
<input ng-model="name">
<p>Hello {{name}}!</p>
</body>
</html>
短短几行代码(其实完全是HTML代码),实现了一个简单的捕获文本输入的功能。如果使用原生JavaScript或者jQuery工具库,首先要侦听input的事件,然后修改p节点的文本。这类代码毫无技术性可言,都是些重复的编码工作,现在,AngularJS把我们从琐碎的coding工作中解决出来了。
Flex开发者看了上面的例子,是不是觉得很眼熟?大家伙马上想到了MXML代码中的数据绑定。上面的例子中,使用双大括号围起来的写法,和MXML中的单大括号写法何其相似!!还必须指出的是,AngularJS实现的是双向数据绑定,即如果用代码修改了Model中的name属性,界面上也会同步更新。同志们,仅这个特性就能让我们在有限的编程生涯中少写多少行代码??
数据绑定是AngularJS的两大法宝之一,另外一个是依赖注入。为了实现依赖注入,AngularJS扩展了HTML DOM语法,添加了所谓的"directive",其实就是自定义 的HTML标记,比如上面代码中的ng-model属性。类似的还有不少,比如ng-app, ng-controller, ng-repeat, ng-click, ng-init, ng-class, ng-show, ng-hide...。为了解析这些自定义的标记,在DOM加载完毕后,AngularJS会遍历DOM树,根据定义的directive列表,对这些标记进行解析,如果有需要,会修改DOM节点,以及建立Controller, Model, 建立数据绑定等等。
除了内置的directive, AngularJS允许我们自定义directive。由于HTML代码中本身并没有包括任何的业务逻辑,只是将DOM节点和Controller, Model绑定在一起,这使得我们可以方便地编写自定义组件,从而提高代码的重用度。
和其他的开发框架相比,AngularJS稍显复杂,毕竟使用代码去扩展HTML语法,这听起来就是一个大工程。不过,对于使用者来说,完全可以不用太过理会其中复杂的实现,只需要关注应用本身的功能,这正是使用AngularJS的目的所在。
AngularJS框架速写的更多相关文章
- 十佳AngularJS框架
您是否还在烦恼如何没有困难地创建一个创新型的Web应用程序?那么一定不要错过这个集合!在本文中,小编为大家收集了十个非常棒的AngularJS框架.AngularJS框架拥有大量有用的工具和组件,可以 ...
- 10 个非常有用的 AngularJS 框架
AngularJS是最流行的开源web app框架.AngularJS被用于解决阻碍单页应用程序开发的各种挑战. 你作为一个AngularJS用户,却不知道一些可以帮助你美化编码的资源?那么一定不能错 ...
- AngularJS框架研究(一)
和几年前相比,现在的Javascript开发方式有了翻天覆地的变化,一些极具创意的开发工具的出现,让前端开发更加成熟,Angular框架就是一个例子.最近在看Angular的源代码,发现并不是件容易的 ...
- 简洁AngularJS框架后台管理系统bootstrap后台模板
最近在做一个后台管理的项目,但是没有设计图完全,所以就发现一款非常不错的模版. 这个模版是基于 AngularJS 和 bootstrap 的后台管理系统模版. Minovate是 AngularJS ...
- 关于js单页面实现跳转原理以及利用angularjs框架路由实现单页面跳转
还记得我们刚开始学习html时使用的锚节点实现跳转吗? <a href="#target">我想跳转至目标位置</a> <p>第一条</p ...
- angularjs框架及其生态环境 --待续
angular的MVVM框架结构: 1. app, 2.routes, config, 3.module, 4.Controller, $scope,controller参数,事件 ...
- vuejs angularjs 框架的一些比较(vue项目重构四)
使用Angularjs和Vue.js对比 首先需要说明的是:现在默认angularjs指angular1.0+版本,angular默认指2.0以上版本.本文的名词也默认指定angular的1.0+版本 ...
- AngularJS 框架
AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML. [Angular JS表达式] 1.Angular JS使用双{{}}绑定方式.用于将表达式的内容输出到页面 ...
- 初探AngularJs框架(三)
一.实现todoList的demo 功能很简单,提供一个文本框,用户输入回车后添加新条目.每个条目可以在待处理和处理中两个区域间切换,每个条目都可以被删除,大致的界面如下图所示: 二.处理逻辑 首先将 ...
随机推荐
- R语言数据分析系列六
R语言数据分析系列六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候怎样下手分析,数据分析的第一步.探索性数据分析. 统计量,即统计学里面关注的数据集 ...
- js中,(function(){})()的用法解析
(function($){...})(jQuery) 含义 经常用,今天总结一下,下文摘自某网友的总结: (function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下 ...
- TFTP server组态
TFTP server组态 2014-10-31北京海淀区 张俊浩 一.TFTP(Trivial File Transfer Protocol,简单文件传输协议或称小型文件传输协议) 是一种简化的文 ...
- ios结构体httpPost头结构
ios结构体httpPost头结构 by 吴雪莹 NSString* urlStr = @"; NSURL* url = [NSURL URLWithString:urlStr]; NSMu ...
- centos 之7zip
首先,我得说几句,我第一次进行了实验. 压缩文件夹html rar压缩 成绩5.18M zip压缩 成绩5.06M 7z压缩 成绩870K 第一种,源代码编译安装 官网下载地址:http:/ ...
- JS正则替换字符串
1.只替换第一次出现的字符: text.replace(/javascript/i, "JavaScript"); //正则用//来将正则包起来 i表示区分大小写 2.全局替换: ...
- 在打包程序中自动安装SQL Server数据库 .
原文:在打包程序中自动安装SQL Server数据库 . 1.创建安装项目“Setup1”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”. 在“添加新项目”对话框中,选择“项目类型” ...
- 淘宝开放源码WebserverTengine基本安装步骤
1.Tengine 安装pcre #支持Tengine伪静态 # cd /usr/local/ # tar zxvf pcre-8.13.tar.gz #解压jar包 # cd pcre-8.13 # ...
- ASP.NET 5是如何通过XRE实现跨平台的
挡不住的好奇心:ASP.NET 5是如何通过XRE实现跨平台的 .NET程序员也有自己的幸福,.NET的跨平台是一种幸福,.NET的开源也是一种幸福,而更幸福的是可以通过开源的.NET了解.NET ...
- select刷新后,保持选定状态,Cookies存储select选定状态信息
//cookies存储select选定值,防止刷新后没了 window.onload = function () { var cooki = document.cookie; if (cooki != ...