AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。 具体点说:
<script src="../libs/angular.js/1.4.6/angular.min.js"></script>
AngularJS 使得开发现代的单一页面应用程序(SPAs:Single Page Applications)变得更加容易。
AngularJS 把应用程序数据绑定到 HTML 元素。 AngularJS 可以克隆和重复 HTML 元素。 AngularJS 可以隐藏和显示 HTML 元素。 AngularJS 可以在 HTML 元素”背后”添加代码。 AngularJS 支持输入验证。
<script>
标签中的代码复制到名为 js文件.js
的外部文件中即可,然后在script中引用js文件:MVC 模块化 自动化双向数据绑定
首先要知道为什么要MVC?
1234567891011121314 | HTML代码:<!doctype html><html ng-app="HelloAngular"> <head> <meta charset="utf-8"> </head> <body> <div ng-controller="helloNgCtrl"> <p>{{greeting.text}},Angular</p> </div> </body> <script src="js/angular-1.3.0.js"></script> <script src="NgModule1.js"></script></html> |
---|
123456789101112 | //JS代码1:var modelName = angular.module('modelName',[]);modelName .controller('contollerName',['$scope',function($scope){ $scope.greeting = {$scope.greeting={text:'hello'};}}]);//JS代码2function HelloAngular($scope){ $scope.greeting={ text:'hello' };} |
---|
很明显JS1代码函数污染了全局,而Js2代码通过一个模块进行封装,从而避免污染了全局。
在前面我们看到ng-app指令。它的作用是自动启动一个AngularJS应用,ng-app指令一般指派在应用的根元素上,比如,body或者html标签。在每一个HTML文档中,只能有一个AngularJS应用可以被自动启动,在HTML文档中第一个被找到定义在根元素上的ng-app指令将会作为自动启动的应用。 那我们在js代码中定义的模块和ng-app有什么关系呢?很明显,它是告诉AngularJS应用在启动时加载指定的模块,假设这里ng-app只是放一个纯标签,而不给它赋值。那么它就不知道这里该加载什么模块,于是,它也不认识在模块中定义的textController控制器。
这样也是可以启动AngularJS应用,并实现name模型的绑定。
注:在输入框中输入任何字符都会立即绑定更新到页面. 这里采用ng-model指令(directive)绑定是模型scope属性yourname。 并采用表达式将yourname绑定到文本信息中。 这里只需要任何的dom时间监听,因为AngularJs内置了。