[AngularJS系列(1)] 感受篇~
2017-03-09 22:27
323 查看
先来俩栗子感受一下~
如果我们用jQuery来写是这样的:
栗1 - jQuery版本
如果用AngularJS来写呢,是这样的:
栗1 - AngularJS版本
栗2 - jQuery版本
栗2 - AngularJS版本
通过比较,可以发现AngularJS:
代码更简洁 (少写好多js代码啊~)
扩展了html的功能 (html貌似变的很强大哇!)
实现了model和view的双向绑定 (随时在input里输入,随时通过
其实AngularJS还:
分离了JS逻辑和页面渲染 (本来JS又要忙数据交互,又要忙业务逻辑,又要忙页面渲染,现在html长大了,可以分担了~)
为JS提供了MVC框架 (我们熟悉的MVC~)
提供了One Page Application流畅的用户体验 (不像以前,每换一个页面都要重新向后台申请,现在是华丽的页面间无缝切换啊~)
提供依赖注入机制 (意味着更支持模块化~)
便于写单元测试 (行为和界面分离后,行为很方便测试啊~质量更有保障~)
以后会慢慢介绍这些优点,先来看一个完整的AngularJS应用:
main.html
app.js
AngularJS的入口点。从这里开始,AngularJS系统就开始工作了~后面对应的
module,module上注册了一个controller
在所有表单输入元素(input, select, textarea)上都可以用
遍历数组
其它扩展过的标签属性们 :
官方API
http://hellobug.github.io/blog/angularjs-introduction/
栗1现在有个需求,希望页面上某段文字及时的显示某个输入框的输入内容~
如果我们用jQuery来写是这样的:
栗1 - jQuery版本
1 2 3 4 5 6 7 8 | <h1>Hello, <span id="namePlaceholder"></span></h1> <input id="name" type="text"> <script type="text/javascript"> $('#name').keydown(function(e){ $('#namePlaceholder').html(e.target.value); }); </script> |
栗1 - AngularJS版本
1 2 | <h1>Hello, {{name}}</h1> <input type="text" ng-model="name"> |
栗2又来个需求,有个人名的数组,想把这些名字列到页面上~
栗2 - jQuery版本
1 23 | <ul id="list"></ul> <script type="text/javascript"> ['张三', '李四', '王五'].forEach(function(item){ $('#list').append($('<li>' + item + '</li>')); }); </script> |
1 23 | <ul> <li ng-repeat="item in ['张三', '李四', '王五']">{{item}}</li> </ul> |
代码更简洁 (少写好多js代码啊~)
扩展了html的功能 (html貌似变的很强大哇!)
实现了model和view的双向绑定 (随时在input里输入,随时通过
ng-model绑定到
name这个model上~)
其实AngularJS还:
分离了JS逻辑和页面渲染 (本来JS又要忙数据交互,又要忙业务逻辑,又要忙页面渲染,现在html长大了,可以分担了~)
为JS提供了MVC框架 (我们熟悉的MVC~)
提供了One Page Application流畅的用户体验 (不像以前,每换一个页面都要重新向后台申请,现在是华丽的页面间无缝切换啊~)
提供依赖注入机制 (意味着更支持模块化~)
便于写单元测试 (行为和界面分离后,行为很方便测试啊~质量更有保障~)
以后会慢慢介绍这些优点,先来看一个完整的AngularJS应用:
main.html
1 2 3 4 5 6 7 89 | <!doctype html> |
1 23 | var app = angular.module('myApp', []); app.controller('MainCtrl', function($scope) { $scope.nameList = ['张三', '李四', '王五']; }); |
ng-app:
AngularJS的入口点。从这里开始,AngularJS系统就开始工作了~后面对应的
myApp是在
app.js文件里定义的angular
module,module上注册了一个controller
MainCtrl,model都是绑定在它对应的
$scope上的。Scope的概念以后会细讲。
ng-model:
在所有表单输入元素(input, select, textarea)上都可以用
ng-model将value和model绑定起来,所输入的数值会直接被赋到对应的model上。
ng-repeat:
遍历数组
nameList重复当前页面元素。
其它扩展过的标签属性们 :
官方API
http://hellobug.github.io/blog/angularjs-introduction/
相关文章推荐
- 【AngularJS系列1】感受篇
- AngularJS系列之JavaScript语法
- Angularjs系列之表单验证
- angularJS系列之指令directive应用实例
- AngularJS的路由 系列
- angularJS系列之监听路由变化$location和$route实例
- angularJS 系列(四)
- AngularJS系列(一)——常用指令
- Angular系列---- AngularJS入门教程03:AngularJS 模板(转载)
- AngularJS系列-翻译官网
- 移动系统之争 移动系列感受
- AngularJS系列之JavaScript函数和对象
- [AngularJS系列(4)] 那伤不起的provider们啊~ (Provider, Value, Constant, Service, Factory, Decorator)
- AngularJS系列之select下拉选择第一个选项为空白的解决办法
- AngularJS系列(六)——表格
- Angular系列----AngularJS入门教程04:迭代器过滤(转载)
- [AngularJS] AngularJS系列(3) 中级篇之表单验证
- [AngularJS] AngularJS系列(5) 中级篇之动画
- [angularjs] angularjs系列笔记(六)http
- AngularJS系列:1、一个简单的AngularJS实例