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 相关文章推荐
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
js open() 与showModalDialog()方法使用介绍
Sep 10 Javascript
浅谈JavaScript Date日期和时间对象
Dec 29 Javascript
极力推荐10个短小实用的JavaScript代码段
Aug 03 Javascript
Servlet实现文件上传,可多文件上传示例
Dec 05 Javascript
jQuery选择器实例应用
Jan 05 Javascript
微信小程序 setData的使用方法详解
Apr 20 Javascript
react中使用swiper的具体方法
May 15 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
Sep 20 Javascript
JavaScript canvas绘制圆弧与圆形
Feb 18 Javascript
微信小程序实现简单文字跑马灯
May 26 Javascript
jQuery弹框插件使用方法详解
May 26 jQuery
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
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
PHP引用的调用方法分析
2016/04/25 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
javascript函数中的arguments参数
2010/08/01 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
python 排序算法总结及实例详解
2016/09/28 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
Random 在 Python 中的使用方法
2018/08/09 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python爬取指定微信公众号文章
2018/12/20 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
如何运行带参数的python脚本
2019/11/15 Python
python 日志 logging模块详细解析
2020/03/31 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
毕业生就业自荐书
2013/12/15 职场文书
促销活动总结范文
2014/04/30 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
妈妈活动方案
2014/08/15 职场文书
毕业证明模板
2015/06/19 职场文书
MySQL数据库事务的四大特性
2022/04/20 MySQL