Angular
AngularJS 是一个开源的客户端 JavaScript 框架,它使用 HTML 作为其模板语言。它之所以引人注目,是因为它认为声明式编程比命令式编程更适合连接用户界面和创建模块化组件。
Angular 是 MVC,但它的工作方式与 Backbone 有很大的不同。
Angular 中的模板和视图是相似的,它们只是带有额外“糖”(即增强功能)的普通 HTML。事实上,你可以在不写一行 JavaScript 的情况下组合一个(非常)简单的 Angular 应用。
<input ng-model="name">
<h1>Hello {{ name }}</h1>
input 元素上的 ng-model 属性将输入的值连接到一个名为“name”的模型。Angular 为我们创建了这个模型;它不需要在别处声明。然后,在 h1 中,我们将值绑定到“name”模型。当你更新 input 时,h1 也会更新。
当你想要用 Angular 构建有用的东西时,你会使用一个控制器,它只是一个 JavaScript 函数。
var AppCtrl = function ($scope) {
$scope.name = "Yoda";
};
控制器有一个作用域,这是一个它能够访问的 DOM 区域。给控制器一个作用域看起来是这样的:
<div ng-controller="AppCtrl">
<input ng-model="name">
<h1>Hello {{ name }}</h1>
</div>
模型存在于控制器的作用域内,所以上面的例子中,“name”模型默认会设置为“Yoda”,但当你输入时,input 会更新模型,并且 h1 也会更新。
你会注意到控制器作为参数接收的 $scope 变量,但它似乎无处而来。这是使用一个称为依赖注入的系统注入到控制器中的。这是一个复杂的话题,但它是构建模块化应用的一个有用工具。
