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 相关文章推荐
JQUERY 对象与DOM对象之两者相互间的转换
Apr 27 Javascript
Javascript学习笔记1 数据类型
Jan 11 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
Aug 23 Javascript
file控件选择上传文件确定后触发的js事件是哪个
Mar 17 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
Javascript 一些需要注意的细节(必看篇)
Jul 08 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
Aug 18 jQuery
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 Javascript
vue-router中scrollBehavior的巧妙用法
Jul 09 Javascript
vue生成token并保存到本地存储中
Jul 17 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
Sep 21 Javascript
Electron + vue 打包桌面操作流程详解
Jun 24 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
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
体育活动总结范文
2014/05/04 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
聘任证明怎么写
2015/03/02 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS
ant design vue的form表单取值方法
2022/06/01 Vue.js