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 相关文章推荐
JS实现模仿微博发布效果实例代码
Dec 16 Javascript
DIV始终居中的js代码
Feb 17 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
深入分析javascript中console命令
Aug 14 Javascript
微信小程序微信支付接入开发实例详解
Apr 12 Javascript
jQuery、layer实现弹出层的打开、关闭功能
Jun 28 jQuery
Angular指令之restict匹配模式的详解
Jul 27 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
Jun 11 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
vue中设置、获取、删除cookie的方法
Sep 21 Javascript
浅入深出Vue之组件使用
Jul 11 Javascript
node.js如何根据URL返回指定的图片详解
Oct 21 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+MySQL修改记录的方法
2015/01/21 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
window.location.hash 属性使用说明
2010/03/20 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
python重试装饰器的简单实现方法
2019/01/31 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
python 实现Harris角点检测算法
2020/12/11 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
应届毕业生求职信范例分享
2013/12/17 职场文书
《植物妈妈有办法》教学反思
2014/02/25 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
写给领导的感谢信
2015/01/22 职场文书
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers
Hive导入csv文件示例
2022/06/25 数据库