实践中学习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 相关文章推荐
JS中style属性
Oct 11 Javascript
JavaScript用Number方法实现string转int
May 13 Javascript
jQuery链使用指南
Jan 20 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
Apr 17 Javascript
JavaScript代码性能优化总结篇
May 15 Javascript
JavaScript实战之菜单特效
Aug 16 Javascript
Vue.js 父子组件通讯开发实例
Sep 06 Javascript
vue实现打印功能的两种方法
Sep 07 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
js实现弹窗效果
Aug 09 Javascript
vue 解决provide和inject响应的问题
Nov 12 Javascript
Vue中引入svg图标的两种方式
Jan 14 Vue.js
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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
python调用java的Webservice示例
2014/03/10 Python
python中遍历文件的3个方法
2014/09/02 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
配件采购员岗位职责
2013/12/03 职场文书
校本教研工作制度
2014/01/22 职场文书
社区母亲节活动记录
2014/03/06 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
南极大冒险观后感
2015/06/05 职场文书
Python 内置函数速查表一览
2021/06/02 Python
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis