AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入、等等。

前端一些术语

类库 - 类库是一些函数的集合,它能帮助你写WEB应用。起主导作用的是你的代码,由你来决定何时使用类库。类库有:jQuery,YUI,Protype等

框架 - 框架是一种特殊的、已经实现了的WEB应用,你只需要对它填充具体的业务逻辑。这里框架是起主导作用的,由它来根据具体的应用逻辑来调用你的代码。框架有:knockout、sproutcore等。

AngularJS的一些技术特点

  1. 使用双大括号{{}}语法进行数据绑定;
  2. 使用DOM控制结构来实现迭代或者隐藏DOM片段;
  3. 支持表单和表单的验证;
  4. 能将逻辑代码关联到相关的DOM元素上;
  5. 能将HTML分组成可重用的组件
  6. 双向绑定(html影响代码,代码也影响html)
  7. 路由功能(单页面实现类似多URL的功能)

MVVM的实现

数据模型(data-model)关联到视图(UI)上,让前台开发人员可以很方便的去建立完整的页面,数据可以使用测试数据,最后可以将获取数据的部分抽象成一个个的API接口即可,而不需要真正等待后台人员将程序开发完,前台人员就可以对已经完成的功能进行测试了。

代表性的实例

<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
</head>
<body>
Hello {{'World'}}!
</body>
</html>

使用{{}}乱起来的代码就是angularJS的代码,使用引号括起来表示它是个字符串,下面看一下在网站上经常看到的代码,如果你登陆了就显示hellow yourname,否则就显示

hello world,这是个很经典的例子

<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
</head>
<body>
Your name: <input type="text" ng-model="yourname" placeholder="World">
<hr>
Hello {{yourname || 'World'}}!
</body>
</html>

几个重要的angularJS的指令(Directive)

Directive命名可以用驼峰式的风格的命名,如ngBind,ngApp,但directive也可以支蛇底式的命名,需要通过 :(冒号)-(减号)或 _(下划线)连接,如ng:app,ng-app,ng_app它们是等价的

ng-app:代码的作用域(一个页面只允许有一个ng-app)

ng-controller:控制器作用域(一个ng-app可以包括多个controller)
ng-repeat:集合遍历
ng-model:双向绑定
ng-click:单击事件绑定
ng-if:条件绑定
ng-bind:变量绑定到指定标签
 
下一讲,我们将开始测试具体的实例……