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


Posted in Javascript onApril 20, 2017

AngularJS 在 <input type="text" /> 中实现双向动态绑定十分简单,如下所示:

<input type="text" ng-model="topic.title" />

只需要用ng-model 与 $scope 中的属性对应,即实现了type=”text” 的双向动态绑定。当 <input type="radio" /> 及 <input type="checkbox" /> 时情况略有不同:

1. <inputtype="radio" />

<input type="radio" name="person-action" value="go_home" ng-model="person.action" />回家 
<input type="radio" name="person-action" value="go_to_school" ng-model="person.action" />回学校

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

2. <input type="checkbox" />

<input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="phone.play_sound" />铃声 
<input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="phone.play_vibrate" />震动 
<input type="checkbox" ng-true-value="true" ng-false-value="false" ng-model="phone.play_lights" />呼吸灯

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

但是理想跟现实总是相差太多,在实际操作过程中还是出现了问题。应该是ng-repeat中scope作用域的问题。

经过一番搜索、调试,自己终于将此问题解决了,效果图如下:

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

核心源码

js

var str = ""; // 原来存放选中的项 
$scope.Selected = false; //默认未选中 
var choseArr=[]; // 定义数组用于存放前端显示 
$scope.check = function(z,x){ 
console.log("HUY:"); 
console.log(z); 
console.log("HUYU:"); 
console.log(x); 
if (x == false) { // 选中 
   str = str + z + ','; 
  } else { 
   str = str.replace(z + ',', ''); // 取消选中 
  } 
  choseArr = (str.substr(0,str.length-1)).split(','); 
 console.log("HY:"); 
 console.log(choseArr); 
 $scope.number_request = choseArr.length; // 前端显示所选数量 
 $scope.content_request = choseArr; // 前端显示所选请求ID 
};

Html

<tr ng-repeat="item in querydata"> 
<td ng-bind="$index+1">1</td> 
 <td><a ui-sref="#">{{item.postid}}</a></td> 
  <td>{{item.medname}}</td> 
  <td>{{item.medfact}}</td> 
  <td>{{item.medcnt}}</td>  
  <td>{{item.remark}}</td>   
  <td>{{item.tel}}</td>   
  <td>{{item.post_time}}</td> 
  <td><input id={{item.postid}} type="checkbox" ng-model="Selected" ng-click="check(item.postid,Selected)" /></td>   
</tr>

参考文献:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
滚动经典最新话题[prototype框架]下编写
Oct 03 Javascript
用Javascript实现UTF8编码转换成gb2312编码
Dec 22 Javascript
对象特征检测法判断浏览器对javascript对象的支持
Jul 25 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
Vue.js弹出模态框组件开发的示例代码
Jul 26 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
Apr 01 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
Vue.js更改调试地址端口号的实例
Sep 19 Javascript
angular4笔记系列之内置指令小结
Nov 09 Javascript
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
element-ui 文件上传修改文件名的方法示例
Nov 05 Javascript
Vue如何引入远程JS文件
Apr 20 #Javascript
AngularJS改变元素显示状态
Apr 20 #Javascript
bootstrap 设置checkbox部分选中效果
Apr 20 #Javascript
详解Vue2.0之去掉组件click事件的native修饰
Apr 20 #Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 #Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 #Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 #Javascript
You might like
Zend的MVC机制使用分析(一)
2013/05/02 PHP
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
再谈javascript面向对象编程
2012/03/18 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
python实现目录树生成示例
2014/03/28 Python
python文件操作相关知识点总结整理
2016/02/22 Python
python pyheatmap包绘制热力图
2018/11/09 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Python测试线程应用程序过程解析
2019/12/31 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
怎样创建、运行java程序
2014/08/01 面试题
计算机网络专业自荐书
2014/06/09 职场文书
庆七一活动总结
2014/08/27 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
重阳节简报
2015/07/20 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android
springboot读取nacos配置文件
2022/05/20 Java/Android