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 相关文章推荐
许愿墙中用到的函数
Oct 07 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
Aug 26 Javascript
使用javascript获取flash加载的百分比的实现代码
May 25 Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
Jun 09 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
Dec 07 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
Jan 13 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
Nov 20 Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 Javascript
微信小程序基于高德地图查找位置并显示文字
Oct 30 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 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的类树(支持无限分类)
2006/10/09 PHP
如何给phpadmin一个保护
2006/10/09 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
JS 中LocalStorage和SessionStorage的使用
2017/08/17 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Python-接口开发入门解析
2019/08/01 Python
ASP.NET Core中的配置详解
2021/02/05 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
请假条格式范文
2014/04/10 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
团拜会主持词
2015/07/04 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
Python如何配置环境变量详解
2021/05/18 Python
Python破解极验滑动验证码详细步骤
2021/05/21 Python
用Python爬取某乎手机APP数据
2021/06/15 Python
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript