实践中学习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删除所有的cookie的代码
Nov 25 Javascript
Extjs实现进度条的两种便捷方式
Sep 26 Javascript
JS调用页面表格导出excel示例代码
Mar 18 Javascript
javascript数组去重的六种方法汇总
Aug 16 Javascript
JSON字符串和对象相互转换实例分析
Jun 16 Javascript
JavaScript实现自动切换图片代码
Oct 11 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 Javascript
javascript正则表达式模糊匹配IP地址功能示例
Jan 06 Javascript
详解react-native-fs插件的使用以及遇到的坑
Sep 12 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
Oct 08 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
Sep 29 Javascript
vue 调用 RESTful风格接口操作
Aug 11 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP 作用域解析运算符(::)
2010/07/27 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
python 网络爬虫初级实现代码
2016/02/27 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
妇产医师自荐信
2014/01/29 职场文书
阿德的梦教学反思
2014/02/06 职场文书
法人身份证明书
2015/06/18 职场文书
预备党员表决心的话
2015/09/22 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
Pytest中conftest.py的用法
2021/06/27 Python
Python可视化学习之seaborn调色盘
2022/02/24 Python