AngularJS 是一个为动态WEB应用设计的结构框架。 它能让你使用HTML作为模板语言,通过扩
展HTML的语法,让你能更清楚、 简洁地构建你的应用组件。 它的创新点在于,利用 数据绑定 和 依赖
注入,它使你不用再写大量的代码了。 这些全都是通过浏览器端的Javascript实现,这也使得它能够完
美地和任何服务器端技术结合。
AngularJS是为了克服HTML在构建应用上的不足而设计的。 HTML是一门很好的为静态文本展示
设计的声明式语言,但要构建WEB应用的话它就显得乏力了。 所以我做了一些工作(你也可以觉得是
小花招
style="font-family: MicrosoftYaHei;fonAngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的缺陷。 AngularJS通过
使用我们称为标识符(directives)的结构,让浏览器能够识别新的语法。 例如:
使用双大括号 {{}} 语法进行数据绑定;
使用DOM控制结构来实现迭代或者隐藏DOM片段;
支持表单和表单的验证;
能将逻辑代码关联到相关的DOM元素上;
能将HTML分组成可重用的组件。
端对端的解决方案
AngularJS试图成为成为WEB应用中的一种端对端的解决方案。 这意味着它不只是你的WEB应用
中的一个小部分,而是一个完整的端对端的解决方案。 这会让AngularJS在构建一个CRUD(增加
reate、 查询Retrieve、 更新Update、 删除Delete)的应用时显得很“ 固执” (原文为
pinionated,意指没有太多的其他方式)。 但是,尽管它很“ 固执” ,它仍然能确保它的“ 固执” 只
是在你构建应用的起点,并且你仍能灵活变动。 AngularJS的一些出众之处如下:
构建一个CRUD应用可能用到的全部内容包括:数据绑定、 基本模板标识符、 表单验证、 路由、 深度链
接、 组件重用、 依赖注入。
测试方面包括:单元测试、 端对端测试、 模拟和自动化测试框架。
具有目录布局和测试脚本的种子应用作为起点。
ngularJS的可爱之处
AngularJS通过为开发者呈现一个更高层次的抽象来简化应用的开发。 如同其他的抽象技术一
样,这也会损失一部分灵活性。 换句话说,并不是所有的应用都适合用AngularJS来做。 AngularJS主
要考虑的是构建CRUD应用。 幸运的是,至少90%的WEB应用都是CRUD应用。 但是要了解什么适合用
ngularJS构建,就得了解什么不适合用AngularJS构建。
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/angular-1.1.0.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-controller="InvoiceCntl">
<b>Invoice:</b>
<br>
<br>
<table>
<tr><td>Quantity</td><td>Cost</td></tr>
<tr>
<td><input type="integer" min="0" ng-model="qty" required ></td>
<td><input type="number" ng-model="cost" required ></td>
</tr>
</table>
<hr>
<b>Total:</b> {{qty * cost | currency}}
</div>
</body>
</html>
function InvoiceCntl($scope) {
$scope.qty = 1;
$scope.cost = 19.95;
}
it(‘should show of angular binding‘, function() {
expect(binding(‘qty * cost‘)).toEqual(‘$19.95‘);
input(‘qty‘).enter(‘2‘);
input(‘cost‘).enter(‘5.00‘);
expect(binding(‘qty * cost‘)).toEqual(‘$10.00‘);
});
ewline"> 运行效果
Invoice:
Quantity Cost
1 19.95