AngularJS单选框及多选框实现双向动态绑定


Posted in Javascript onJanuary 13, 2016

在AngularJS中提及双向数据绑定,大家肯定会想到ng-model指令。

一、ng-model

ng-model指令用来将input、select、textarea或自定义表单控件同包含它们的作用域中的属性进行绑定。它将当前作用域中运算表达式的值同给定的元素进行绑定。如果属性不存在,它会隐式创建并将其添加到当前作用域中。
始终用ng-model来绑定scope上一个数据模型内的属性,而不是scope上的属性,这可以避免在作用域或后代作用域中发生属性覆盖!

<input type="text" ng-model="modelName.somePrototype" />

二、type=”radio”

通过 value 属性指定选中状态下对应的值,并通过 ng-model 将单选框与 $scope 中的属性对应,便实现了 type=”radio” 时的双向动态绑定。

<input type="radio" name="sex" value="male" ng-model="person.sex" />男
<input type="radio" name="sex" value="female" ng-model="person.sex" />女

三、type=”checkbox”

通过AngularJS 的内置指令 ng-true-value 和 ng-false-value ,指定多选框在选中和未选中状态下对应的值,再通过ng-model 将其与 $scope 中的属性对应,便实现了type=”checkbox” 的双向动态绑定。

<input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="person.like.pingpong" />乒乓球
<input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="person.like.football" />足球
<input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="person.like.basketball" />篮球

四、完整示例

<html ng-app="myApp">
<head>
 <meta charset="UTF-8">
 <title>radio & checkbox</title>
 <script type="text/javascript" src="angular.js/1.4.4/angular.min.js"></script>
</head>
<body>
 <input type="radio" name="sex" value="male" ng-model="person.sex" />男
 <input type="radio" name="sex" value="female" ng-model="person.sex" />女
 <input type="text" ng-model="person.sex" />

 <input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="person.like.pingpong" />乒乓球
 <input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="person.like.football" />足球
 <input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="person.like.basketball" />篮球
 <span>{{ person.like.pingpong }} {{ person.like.football }} {{ person.like.basketball }} </span>
</body>
</html>

<script type="text/javascript">
 var app = angular.module('myApp', []);
 app.run(function($rootScope) {
  $rootScope.person = {
   sex: "female",
   like: {
    pingpong: true,
    football: true,
    basketball: false
   }
  };
 });
</script>

以上就是关于AngularJS单选框及多选框实现双向动态绑定的相关介绍,希望对大家的学习有所帮助。

Javascript 相关文章推荐
根据分辨率不同,调用不同的css文件
Jul 07 Javascript
解放web程序员的输入验证
Oct 06 Javascript
jQuery学习笔记 更改jQuery对象
Sep 19 Javascript
浅析js封装和作用域
Jul 09 Javascript
js中substring和substr的定义和用法
May 05 Javascript
javascript 获取函数形参个数
Jul 31 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
Sep 12 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
Jan 12 Javascript
原生js实现淘宝购物车功能
Jun 23 Javascript
使用angular帮你实现拖拽的示例
Jul 05 Javascript
JavaScript实现省市联动效果
Nov 22 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 Javascript
javascript中的作用域和闭包详解
Jan 13 #Javascript
JSON+Jquery省市区三级联动
Jan 13 #Javascript
Easyui form combobox省市区三级联动
Jan 13 #Javascript
轻松实现javascript图片轮播特效
Jan 13 #Javascript
简单的JS时钟实例讲解
Jan 13 #Javascript
基于jquery实现的仿优酷图片轮播特效代码
Jan 13 #Javascript
详解iframe与frame的区别
Jan 13 #Javascript
You might like
星际RPG字典
2020/03/04 星际争霸
实用函数7
2007/11/08 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
Python语法快速入门指南
2015/10/12 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
详解python做UI界面的方法
2019/02/27 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
后勤人员自我鉴定
2013/10/20 职场文书
中学生获奖感言
2014/02/04 职场文书
计划生育证明书写要求
2014/09/17 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
2015年班组工作总结
2015/04/20 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers