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 相关文章推荐
json 实例详细说明教程
Oct 31 Javascript
简单实用的js调试logger组件实现代码
Nov 20 Javascript
关于onchange事件在IE和FF下的表现及解决方法
Mar 08 Javascript
Node.js实现的简易网页抓取功能示例
Dec 05 Javascript
jquery中one()方法的用法实例
Jan 16 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 Javascript
JS实现鼠标框选效果完整实例
Jun 20 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
Jul 11 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
Jun 05 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
Nov 04 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
第十二节 类的自动加载 [12]
2006/10/09 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
2017/07/12 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
python计数排序和基数排序算法实例
2014/04/25 Python
理解Python中函数的参数
2015/04/27 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python获取时间戳代码实例
2019/09/24 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
自我评价的范文
2014/02/02 职场文书
就业协议书范本
2014/04/11 职场文书
农村党支部承诺书
2015/04/30 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript