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 相关文章推荐
newxtree.js代码
Mar 13 Javascript
jquery移除、绑定、触发元素事件使用示例详解
Apr 10 Javascript
简单易用的倒计时js代码
Aug 04 Javascript
20个实用的JavaScript技巧分享
Nov 28 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
JavaScript面向对象编写购物车功能
Aug 19 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
Feb 10 Javascript
详解vue axios中文文档
Sep 12 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
详解微信小程序自定义组件的实现及数据交互
Jul 22 Javascript
关于JS解构的5种有趣用法
Sep 05 Javascript
layui清空,重置表单数据的实例
Sep 12 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
set_include_path在win和linux下的区别
2008/01/10 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
学习JavaScript设计模式(继承)
2015/11/26 Javascript
继续学习javascript闭包
2015/12/03 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
微信小程序制作表格的方法
2019/02/14 Javascript
vue实现购物车的监听
2020/04/20 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
python简单程序读取串口信息的方法
2015/03/13 Python
详解Python中的多线程编程
2015/04/09 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
Python中Qslider控件实操详解
2021/02/20 Python
介绍一下XMLHttpRequest对象
2012/02/12 面试题
《再别康桥》教学反思
2014/02/12 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
谢师宴答谢词
2015/01/05 职场文书
创建文明城市倡议书
2015/04/28 职场文书
初中数学教学反思范文
2016/02/17 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
DIY胆机必读:各国电子管评价
2022/04/06 无线电