实践中学习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 相关文章推荐
jcarousellite.js 基于Jquery的图片无缝滚动插件
Dec 30 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 Javascript
Angular 根据 service 的状态更新 directive
Apr 03 Javascript
基于jquery实现即时检查格式是否正确的表单
May 06 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
Oct 14 Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 Javascript
关于vue编译版本引入的问题的解决
Sep 17 Javascript
JavaScript常用数组操作方法,包含ES6方法
May 10 Javascript
微信小程序利用button控制条件标签的变量问题
Mar 15 Javascript
JS script脚本中async和defer区别详解
Jun 24 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
Sep 02 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
艺术家策划的室内设计:Curious Egg
2019/03/06 全球购物
升职自荐书范文
2013/11/28 职场文书
授权委托书格式模板
2014/04/03 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js