首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
AngularJS简介
Hello Angular
依赖注入
作用域
数据绑定:数据->模板
数据绑定:模板->数据
数据->模板->数据->模板
angular定义模板内容
angular内容渲染控制
angular节点控制
angular事件绑定
angular表单控件
angular排序 orderBy
angular过滤列表 filter
angular路由定义
angular路由参数定义
angular路由业务处理
定义模板变量标识标签
angular与HTTP请求
angular上下文绑定
angular对象处理
angular缓存
angular计时器
angular表达式函数化
angular模板单独使用
模块和服务的概念与关系
angular定义模块
angular定义服务
引入模块并使用服务
当前位置:
首页>>
技术小册>>
AngularJS学习指南
小册名称:AngularJS学习指南
我们从一个完整的例子开始认识 ng : ```asp 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>试验</title> 7 <script type="text/javascript" src="jquery-1.8.3.js"></script> 9 <script type="text/javascript" src="angular.js"></script> 10 </head> 12 <body> 13 <div ng-controller="BoxCtrl"> 14 <div style="width: 100px; height: 100px; background-color: red;" 15 ng-click="click()"></div> 16 <p>{{ w }} x {{ h }}</p> 17 <p>W: <input type="text" ng-model="w" /></p> 18 <p>H: <input type="text" ng-model="h" /></p> 19 </div> 20 <script type="text/javascript" charset="utf-8"> 23 var BoxCtrl = function($scope, $element){ 26 //$element 就是一个 jQuery 对象 28 var e = $element.children().eq(0); 29 $scope.w = e.width(); 30 $scope.h = e.height(); 31 $scope.click = function(){ 33 $scope.w = parseInt($scope.w) + 10; 34 $scope.h = parseInt($scope.h) + 10; 35 } 36 $scope.$watch('w', 38 function(to, from){ 39 e.width(to); 40 } 41 ); 42 $scope.$watch('h', 44 function(to, from){ 45 e.height(to); 46 } 47 ); 48 } 49 angular.bootstrap(document.documentElement); 51 </script> 52 </body> 53 </html> ``` 从上面的代码中,我们看到在通常的 HTML 代码当中,引入了一些标记,这些就是 ng 的模板机制,它不光完成数据渲染的工作,还实现了数据绑定的功能。 同时,在 HTML 中的本身的 DOM 层级结构,被 ng 利用起来,直接作为它的内部机制中,上下文结构的判断依据。比如例子中 p 是 div 的子节点,那么 p 中的那些模板标记就是在 div 的 Ctrl 的作用范围之内。 其它的,也同样写一些 js 代码,里面重要的是作一些数据的操作,事件的绑定定义等。这样,数据的变化就会和页面中的 DOM 表现联系起来。一旦这种联系建立起来,也即完成了我们所说的“双向绑定”。然后,这里说的“事件”,除了那些“点击”等通常的 DOM 事件之外,我们还更关注“数据变化”这个事件。 最后,可以使用: angular.bootstrap(document.documentElement); 来把整个页面驱动起来了。(你可以看到一个可被控制大小的红色方块) 更完整的方法是定义一个 APP : ```asp 1 <!DOCTYPE html> 2 <html ng-app="MyApp"> 3 <head> 4 <meta charset="utf-8" /> 5 <title>数据正向绑定</title> 7 <script type="text/javascript" src="jquery-1.8.3.js"></script> 9 <script type="text/javascript" src="angular.js"></script> 10 </head> 12 <body> 13 <div ng-controller="TestCtrl"> 15 <input type="text" value="" id="a" /> 16 </div> 17 <script type="text/javascript"> 20 var TestCtrl = function(){ 21 console.log('ok'); 22 } 23 //angular.bootstrap(document.documentElement); 25 angular.module('MyApp', [], function(){console.log('here')}); 26 </script> 2728 </body> 29 </html> ``` 这里说的一个 App 就是 ng 概念中的一个 Module 。对于 Controller 来说, 如果不想使用全局函数,也可以在 app 中定义: ```asp var app = angular.module('MyApp', [], function(){console.log('here')}); app.controller('TestCtrl', function($scope){ console.log('ok'); } ); ``` 上面我们使用 ng-app 来指明要使用的 App ,这样的话可以把显式的初始化工作省了。一般完整的过程是: ```asp var app = angular.module('Demo', [], angular.noop); angular.bootstrap(document, ['Demo']); ``` 使用 angular.bootstrap 来显示地做初始化工具,参数指明了根节点,装载的模块(可以是多个模块)。
上一篇:
AngularJS简介
下一篇:
依赖注入
该分类下的相关小册推荐:
Angularjs入门教程
AngularJS面试指南