本文实例讲述了AngularJS框架双向数据绑定机制。分享给大家供大家参考,具体如下:

之前写的一篇《AngularJS入门示例之Hello World详解》 ,介绍ng-model的时候提到:使用AngularJS的双向数据绑定机制,不需要我们编写繁琐的代码来实现同样的功能。现在我们看一个比较震撼的例子,看看angularJS是如何减少我们在前端开发中的繁琐劳动的。越是感受到框架功能的强大,越是能够激发学习的兴趣和动力。
假如我们有一个学生信息列表,包含学生的姓名、地址和年龄信息。假如这个数据源信息保存在data.js文件中。
var g_phones = [
<span style="white-space:pre"> </span>{
"name": "wang xx",
"address": "shanghai",
"age": 20
},
{
"name": "li xx",
"address": "beijing & shanghai",
"age": 10
},
{
"name": "qian xx",
"address": "xian",
"age": 30
},
];
现在要求实现以下功能:
1、学生信息列表,默认全部显示,显示顺序跟数组顺序一致。
2、提供一个搜索框,能够进行模糊搜索。只要某个学生的name、address、age有一个符号搜索条件,就可以显示。
3、提供一个选择框,能够按照name或者age对学生信息进行排序。
效果图如下:
使用angularJS实现上述效果的代码如下:
<!--ng-app和ng-controller都是angularJS框架的语法-->
<html ng-app ng-controller="RootController">
<head>
<!-- 加载数据文件-->
<script src="data.js"></script>
<script src="angular-1.2.25.js"></script>
<script>
// angular中的控制器,即MVC模式中的C角色
function RootController($scope)
{
//读取数据源,保存到angular的scope中
$scope.students = g_students;
// 搜索字段(默认无条件,用空字符表示)
$scope.queryProp = '';
// 排序字段(默认无排序,用空字符表示)
$scope.orderProp = '';
}
</script>
</head>
<body>
<!--ng-model实现数据的双向绑定-->
Search: <input ng-model="queryProp">
Sort by:
<select ng-model="orderProp">
<option value="name">name</option>
<option value="age">age</option>
</select>
<!--遍历students,对每个项stu,进行filter和orderBy-->
<ul>
<li ng-repeat="stu in students | filter:queryProp | orderBy:orderProp">
<p>{{stu.name}}</p>
<p>{{stu.address}}</p>
<p>{{stu.age}}</p>
</li>
</ul>
</body>
</html>
可以看到,实现上述功能,需要的所有HTML/JS代码加起来不到40行,代码是很简洁的,很清晰。
如果不使用angularJS,我们使用JavaScript和jQuery来完成上述功能,我们必须要做的事情如下:
1、给search和sort 这2个控件,绑定事件处理函数。当搜索条件或者排序改变的时候,能够实时刷新学生信息列表。
2、由于有排序,所以必须要编写选择排序或冒泡等排序算法,需要考虑字符串比较和数字比较这2种情况。
3、在JS中,通过字符串拼接的方式将<li>插入到DOM中。写过这种代码的都知道,JS中进行HTML字符串的拼接,非常的复杂。
可以看到使用传统的JS开发方式,有很多重复繁琐的劳动,如事件处理函数的绑定、复杂的html字符串拼接等。通过这个例子,很明显可以看到使用angularJS开发效率远远高于JQuery和javascript这种传统的开发方式。如果你还没有感受到angularJS的强大和吸引力,那么我们再看一下关于angular的产生背景。下面是来自 大漠穷秋译作《用AngularJS开发下一代Web应用》的前言。
“关于Angular 的起源,我可以追溯到2009 年的Google Feedback 项目。当时,对于项目的开发速度以及如何编写可测试代码的问题,我们已经经受了几个月的折磨。6 个月时,我们开发了差不多17000 行前端代码。这时候,团队中的一个成员Misko Hevery 做出了一个大胆的宣言:利用他自己业余时间所开发的一个开源库,他可以在两周之内把目前所有东西重写一遍。
我当时想,两周的时间并不会给我们造成太大的影响,同时我们也接受了Misko 努力构建一些东西的想法。然而Misko 最终还是估算错了时间,他用了三个星期。但是,我们所有人还是被他深深地震撼了,更让我们感到震撼的是,他所开发的新应用的代码量从原来的17000 行压缩到了1500 行。看起来,Misko 的东西值得深入推广。Misko 和我决定,围绕他所提倡的理念组建一个团队,这个简单的理念就是:简化对web 开发者的经验要求。”
通过上面的背景介绍,可以看到angular确实能够极大的减少代码量,提高开发效率。行文至此,如果还是没有激起您对angularJS的兴趣和好奇,那么是我语言组织和表达能力不行,不是angular不行。
更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》
希望本文所述对大家AngularJS程序设计有所帮助。
# AngularJS框架
# 双向
# 数据绑定
# 利用VS Code开发你的第一个AngularJS 2应用程序
# Angularjs单选改为多选的开发过程及问题解析
# 基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
# AngularJS开发教程之控制器之间的通信方法分析
# Ubuntu系统下Angularjs开发环境安装
# 总结AngularJS开发者最常犯的十个错误
# 利用Angularjs和Bootstrap前端开发案例实战
# AngularJS应用开发思维之依赖注入3
# angularJS开发注意事项
# 绑定
# 可以看到
# 提供一个
# 两周
# 有一个
# 的是
# 都是
# 进阶
# 如果你
# 还没有
# 相关内容
# 出了
# 有很多
# 不需要
# 和我
# 遍历
# 感兴趣
# 一遍
# 错了
# 用了
相关文章:
如何高效生成建站之星成品网站源码?
Android滚轮选择时间控件使用详解
建站之星Pro快速搭建教程:模板选择与功能配置指南
北京网站制作公司哪家好一点,北京租房网站有哪些?
建站之星安装步骤有哪些常见问题?
C#怎么创建控制台应用 C# Console App项目创建方法
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
如何快速登录WAP自助建站平台?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
小型网站制作HTML,*游戏网站怎么搭建?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
如何选择高效稳定的ISP建站解决方案?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
建站之星价格显示格式升级,你的预算足够吗?
广州美橙建站如何快速搭建多端合一网站?
Java解压缩zip - 解压缩多个文件或文件夹实例
如何快速使用云服务器搭建个人网站?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何用PHP快速搭建高效网站?分步指南
Python如何创建带属性的XML节点
建站之星后台密码遗忘?如何快速找回?
网站app免费制作软件,能免费看各大网站视频的手机app?
广平建站公司哪家专业可靠?如何选择?
建站主机解析:虚拟主机配置与服务器选择指南
常州自助建站工具推荐:低成本搭建与模板选择技巧
建站之星与建站宝盒如何选择最佳方案?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
h5在线制作网站电脑版下载,h5网页制作软件?
如何在阿里云香港服务器快速搭建网站?
开封网站制作公司,网络用语开封是什么意思?
大型企业网站制作流程,做网站需要注册公司吗?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何快速选择适合个人网站的云服务器配置?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
高性价比服务器租赁——企业级配置与24小时运维服务
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
电商网站制作价格怎么算,网上拍卖流程以及规则?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
微课制作网站有哪些,微课网怎么进?
建站主机如何安装配置?新手必看操作指南
PHP 500报错的快速解决方法
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
建站之星各版本价格是多少?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
建站主机是什么?如何选择适合的建站主机?
建站之星多图banner生成与模板自定义指南
Android自定义listview布局实现上拉加载下拉刷新功能
江苏网站制作公司有哪些,江苏书法考级官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。