实践中学习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 控制CSS样式表
Aug 20 Javascript
另一个javascript小测验(代码集合)
Jul 27 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 Javascript
简单介绍jsonp 使用小结
Jan 27 Javascript
jQuery基于cookie实现换肤功能实例
Oct 14 jQuery
vue.js轮播图组件使用方法详解
Jul 03 Javascript
微信小程序实现自定义picker选择器弹窗内容
May 26 Javascript
详解如何配置vue-cli3.0的vue.config.js
Aug 23 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
Jan 16 Javascript
vue中的过滤器及其时间格式化问题
Apr 09 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 Javascript
JavaScript十大取整方法实例教程
Dec 03 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
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
composer.lock文件的作用
2016/02/03 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
js实现全选和全不选
2020/07/28 Javascript
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
python pygame实现球球大作战
2019/11/25 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
澳大利亚家具商店:Freedom
2020/12/17 全球购物
Hibernate持久层技术
2013/12/16 面试题
综合素质的自我鉴定
2013/10/07 职场文书
档案接收函
2014/01/13 职场文书
怀念母亲教学反思
2014/04/28 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
党员转正申请报告
2015/05/15 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
vue递归实现树形组件
2022/07/15 Vue.js