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 相关文章推荐
JavaScript中去掉数组中的重复值的实现方法
Aug 03 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
js实现类似MSN提示的页面效果代码分享
Aug 24 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
Apr 07 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
jQuery封装animate.css的实例
Jan 04 jQuery
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
Aug 06 Javascript
详解vue几种主动刷新的方法总结
Feb 19 Javascript
通过说明与示例了解js五种设计模式
Jun 17 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 Javascript
OpenLayers实现图层切换控件
Sep 25 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
php模板中出现空行解决方法
2011/03/08 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
php身份证号码检查类实例
2015/06/18 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
学习Python爬虫的几点建议
2020/08/05 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
C语言50道问题
2014/10/23 面试题
室内设计专业学生的自我评价分享
2013/11/27 职场文书
最热门的自我评价
2013/12/30 职场文书
群教个人对照检查材料
2014/08/20 职场文书
世界气象日活动总结
2015/02/27 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
对公司的意见和建议
2015/06/04 职场文书
医院感染管理制度
2015/08/05 职场文书
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫