实践中学习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 相关文章推荐
javascript下arguments,caller,callee,call,apply示例及理解
Dec 24 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
Oct 27 Javascript
如何编写高质量JS代码
Dec 28 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
Dec 14 Javascript
gulp解决跨域的配置文件问题
Jun 08 Javascript
vue router2.0二级路由的简单使用
Jul 05 Javascript
vue实现的仿淘宝购物车功能详解
Jan 27 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
vue设置动态请求地址的例子
Nov 01 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 Javascript
vue中touch和click共存的解决方式
Jul 28 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
Oct 23 Javascript
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静态类
2006/11/25 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
Jquery日历插件制作简单日历
2015/10/28 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
Python学习小技巧之列表项的排序
2017/05/20 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
Python实现微信机器人的方法
2019/09/06 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
环境工程专业自荐信
2014/03/03 职场文书
元旦联欢会感言
2014/03/04 职场文书
家长高考寄语
2015/02/27 职场文书
司机岗位职责范本
2015/04/10 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python