实践中学习AngularJS表单


Posted in Javascript onMarch 21, 2016

表单是最常用的一种组建。在Angular.js中,其实并没有单独的为表单添加多少特殊功能。但是,利用Angular.js框架本身的特点,可以更友好的呈现表单。下面将介绍几种常用的功能在Angular中是如何巧妙实现的。

1.根据输入域数据实时更新输出数据

下面代吗实现了一个简易的计算表单,它能将用户输入的数据进行处理,并且实时显示在表单输出域中:

<div ng-app="" ng-init="quantity=1;price=5"> 
数量: <input type="number" ng-model="quantity"> 
价格: <input type="number" ng-model="price"> 
<p><b>总价:</b> {{ quantity * price }}</p> 
</div>

通过定义两个ng-model,将用户输入的数据进行实时监听,并且利用{{}}进行数据的调用,拥几行代码就完成了一个建议的计算表单功能。

2.实现表单重置功能

下面的代码实现了一个表单中经常使用的功能:重置表单。

HTML代码:

<div ng-app="myApp" ng-controller="formCtrl"> 
<form> 
First Name:<br> 
<input type="text" ng-model="user.firstName"><br> 
Last Name:<br> 
<input type="text" ng-model="user.lastName"> 
<br><br> 
<button ng-click="reset()">RESET</button> 
</form> 
<p>form = {{user}}</p> 
</div>

JS代码:

var app = angular.module('myApp', []); 
app.controller('formCtrl', function($scope) { 
$scope.master = {firstName: "John", lastName: "Doe"}; 
$scope.reset = function() { 
$scope.user = angular.copy($scope.master); 
}; 
$scope.reset(); 
});

在JS控制器代码中,我们定义了master对象,用来存放初始时刻表单输入框的值。我们定义了一个reset()方法,该方法执行后,利用angular.copy方法,将master中的值赋值给user,利用这样的方法实现了表单域的重置。在HTML代码中,我们使用ng-click鼠标点击事件触发reset()函数,从而实现我们的功能。

3.实现表单下拉菜单选择域功能

在Angular中,实现下拉菜单很简单。我们可以利用ng-repeat指令来方便的实现一个下拉菜单:

首先,在js的模型中定义数据,数据格式如下:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
$scope.names = ["Google", "Runoob", "Taobao"]; 
});

然后,我们在html中,利用ng-repeat进行模型中数据的读取(具体含义见之前博客)

<div ng-app="myApp" ng-controller="myCtrl"> 
<select ng-model="selectedName" ng-options="x for x in names"> 
</select> 
</div>

关于下拉菜单,还涉及到从数据库、远程等读取数据,此外还有其他方法实现下拉菜单。这些将在之后进行讨论。

Javascript 相关文章推荐
IE6,IE7下js动态加载图片不显示错误
Jul 17 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
Mar 18 Javascript
jQuery动态修改超链接地址的方法
Feb 13 Javascript
JavaScript学习笔记之数组求和方法
Mar 23 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
Aug 04 Javascript
js中数组的常用方法小结
Dec 30 Javascript
Jquery把获取到的input值转换成json
May 15 jQuery
vue元素实现动画过渡效果
Jul 01 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
Vue中props的使用详解
Jun 15 Javascript
微信小程序地图绘制线段并且测量(实例代码)
Jan 02 Javascript
jQuery插件实现图片轮播效果
Oct 19 jQuery
javascript单页面手势滑屏切换原理详解
Mar 21 #Javascript
javascript实现dom元素可拖动
Mar 21 #Javascript
AngularJS 中的指令实践开发指南(一)
Mar 20 #Javascript
浅析AngularJS中的指令
Mar 20 #Javascript
简述Matlab中size()函数的用法
Mar 20 #Javascript
详解Matlab中 sort 函数用法
Mar 20 #Javascript
Sort()函数的多种用法
Mar 20 #Javascript
You might like
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
python中迭代器(iterator)用法实例分析
2015/04/29 Python
python和ruby,我选谁?
2017/09/13 Python
python实现K最近邻算法
2018/01/29 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
pycharm永久激活超详细教程
2020/10/29 Python
python opencv实现图像配准与比较
2021/02/09 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
精彩的英文自荐信
2014/01/30 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
学习经验交流会主持词
2014/04/01 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
班主任2015新年寄语
2014/12/08 职场文书
2015年党总支工作总结
2015/05/25 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
SpringBoot快速入门详解
2021/07/21 Java/Android
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏