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 相关文章推荐
获取客户端网卡MAC地址和IP地址实现JS代码
Mar 17 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
Aug 02 Javascript
使用jQuery将多条数据插入模态框的实现代码
Oct 08 Javascript
浅谈AngularJs指令之scope属性详解
Oct 24 Javascript
javascript中this关键字详解
Dec 12 Javascript
angular ng-click防止重复提交实例
Jun 16 Javascript
vue.js 中使用(...)运算符报错的解决方法
Aug 09 Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 Javascript
对vue生命周期的深入理解
Dec 03 Vue.js
为什么node.js不适合大型项目
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
PHP的博客ping服务代码
2012/02/04 PHP
php自动加载机制的深入分析
2013/06/08 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
详解PHP数组赋值方法
2015/11/07 PHP
PHP函数超时处理方法
2016/02/14 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
JS实现留言板功能
2017/06/17 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
Python定时任务APScheduler的实例实例详解
2019/07/22 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
python xlsxwriter模块的使用
2020/12/24 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
主管职责范文
2013/11/09 职场文书
医药销售求职信范文
2014/02/01 职场文书
大学生社会实践方案
2014/05/11 职场文书
2014年行政部工作总结
2014/11/19 职场文书
2014年党务工作总结
2014/11/25 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
长城导游词
2015/01/30 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL