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 框架Backbone使用指南
Jul 24 Javascript
浅谈jquery设置和获得checkbox选中的问题
Aug 19 Javascript
jQuery中Nicescroll滚动条插件的用法
Nov 10 Javascript
浅谈JavaScript的函数及作用域
Dec 30 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
Jan 18 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 Javascript
JavaScript之filter_动力节点Java学院整理
Jun 28 Javascript
ReactNative Image组件使用详解
Aug 07 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
Sep 13 Javascript
vue-router传参用法详解
Jan 19 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 Javascript
如何在 Vue 中使用 JSX
Feb 14 Vue.js
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 Undefined index报错的修复方法
2011/07/17 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
Javascript实现异步编程的过程
2018/06/18 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
python使用pymysql实现操作mysql
2016/09/13 Python
python万年历实现代码 含运行结果
2017/05/20 Python
python先序遍历二叉树问题
2017/11/10 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
给朋友的道歉信
2014/01/09 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
行政副总岗位职责
2014/02/23 职场文书
创建无烟单位实施方案
2014/03/29 职场文书
班级旅游计划书
2014/05/03 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
学生保证书
2015/01/16 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
html中两种获取标签内的值的方法
2022/06/16 jQuery