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 相关文章推荐
做网页的一些技巧
Feb 01 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
Nov 08 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
Nov 27 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
Oct 09 Javascript
jquery模拟多级复选框效果的简单实例
Jun 08 Javascript
AngularJs表单验证实例代码解析
Nov 29 Javascript
React-Native 组件之 Modal的使用详解
Aug 08 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
深入了解JavaScript 私有化
May 30 Javascript
ES6顶层对象、global对象实例分析
Jun 14 Javascript
JS Generator 函数的含义与用法实例总结
Apr 08 Javascript
jQuery实现开关灯效果
Aug 02 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
Zerg建筑一览
2020/03/14 星际争霸
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
javascript parseInt 大改造
2009/09/27 Javascript
使用js获取QueryString的方法小结
2010/02/28 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
使用angular写一个hello world
2015/01/23 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
高校十八大报告感想
2014/01/27 职场文书
初三班主任寄语大全
2014/04/04 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
教书育人演讲稿
2014/09/11 职场文书
小学生思想品德评语
2014/12/31 职场文书
运动会100米广播稿
2015/08/19 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android