AngularJS 单选框及多选框的双向动态绑定

 更新时间:2017年04月20日 09:49:45   作者:孙华强  
本篇文章主要介绍了AngularJS 单选框及多选框的双向动态绑定的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧

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作用域的问题。

经过一番搜索、调试,自己终于将此问题解决了,效果图如下:

核心源码

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> 

参考文献:

https://www.jb51.net/article/68155.htm

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

相关文章

  • Angular 与 Component store实践示例

    Angular 与 Component store实践示例

    这篇文章主要为大家介绍了Angular 与 Component store实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • AngularJS  自定义指令详解及实例代码

    AngularJS 自定义指令详解及实例代码

    这篇文章主要介绍了AngularJS 自定义指令,这里整理了详细的资料及简单实例代码,有需要的小伙伴可以参考下
    2016-09-09
  • Angular依赖注入系统里Injection token PLATFORM_ID使用场景详解

    Angular依赖注入系统里Injection token PLATFORM_ID使用场景详解

    这篇文章主要为大家介绍了Angular依赖注入系统里Injection token PLATFORM_ID使用场景详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Angular2中监听数据更新的方法

    Angular2中监听数据更新的方法

    今天小编就为大家分享一篇Angular2中监听数据更新的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】

    AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】

    这篇文章主要介绍了AngularJS使用ng-repeat和ng-if实现数据的删选显示效果,非常适用于表单数据的显示使用,涉及ng-repeat和ng-if命令的相关使用技巧,需要的朋友可以参考下
    2016-12-12
  • AngularJS中watch监听用法分析

    AngularJS中watch监听用法分析

    这篇文章主要介绍了AngularJS中watch监听用法,较为详细的分析了$watch的具体功能、相关参数用法与使用注意事项,需要的朋友可以参考下
    2016-11-11
  • AngularJS控制器继承自另一控制器

    AngularJS控制器继承自另一控制器

    本文给大家介绍AngularJS控制器继承自另一控制器的相关内容,小编认为介绍的非常不错,具有参考借鉴价值,感兴趣的朋友参考下吧
    2016-05-05
  • AngularJS中如何使用echart插件示例详解

    AngularJS中如何使用echart插件示例详解

    之前因为项目的需求,第一次系统的使用了angular这一优秀的js框架,其所拥有的许多优秀特性极大的方便了项目的开发,然而在开发中也遇到过不少的问题,趁着最近有时间给大家总结一下,这篇文章将会介绍使用angularjs1结合百度的图表插件echart作为例子用以演示。
    2016-10-10
  • 深入理解Angularjs中$http.post与$.post

    深入理解Angularjs中$http.post与$.post

    本篇文章主要介绍了深入理解Angularjs中$http.post与$.post ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 浅谈ng-zorro使用心得

    浅谈ng-zorro使用心得

    这篇文章主要介绍了浅谈ng-zorro使用心得,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12

最新评论