Angular.js实现多个checkbox只能选择一个的方法示例


Posted in Javascript onFebruary 24, 2017

首先来看看效果

Angular.js实现多个checkbox只能选择一个的方法示例
效果

实现这样的效果,必须使用指令了,只有使用指令才能单独控制每一个scope。

示例代码如下:

<div class="form-group">
   <label class="col-sm-2 control-label">请选择文章主题色彩</label>
   <div class="col-sm-10" theme-group>
   <label class="i-switch m-t-xs m-r">
    <input type="checkbox" input-theme >
    <i></i>
   </label>
   <label class="i-switch bg-info m-t-xs m-r">
    <input type="checkbox" input-theme>
    <i></i>
   </label>
   <label class="i-switch bg-primary m-t-xs m-r">
    <input type="checkbox" input-theme >
    <i></i>
   </label>
   <label class="i-switch bg-danger m-t-xs m-r">
    <input type="checkbox" input-theme>
    <i></i>
   </label>
   </div>
</div>
(function () {
 angular
 .module("shishuoproject")
 .directive("themeGroup",function(){
  return{
  controller: function () {
   var scopeArray=[];
   this.addScope= function (scope) {
   var self=this;
   scopeArray.push(scope);
   scope.$on("$destory",function(){
    self.removeScope(scope);
   })
   };
   this.closeScope= function (scope) {
   //var l=scopeArray.length;
   angular.forEach(scopeArray, function (value) {
    if(value!=scope){
    value.flag=false;
    }
   })
   };
   this.removeScope= function (scope) {
   var index=scopeArray.indexOf(scope);
   if(index!==-1){
    scopeArray.splice(index,1);
   }
   };
   this.getIndex= function (scope) {
   var index=scopeArray.indexOf(scope);
   return index;
   }
  }
  }
 })
 .directive("inputTheme",function(){
  return{
  restrict:'EA',
  require:"^?themeGroup",
  template:'<input type="checkbox" ng-click="choseTheme()" ng-model="flag">',
  replace:true,
  scope:{},
  link: function (scope,element,attr,themeCon) {
   var colorArray=['#27c24c','#23b7e5','#7266ba',' #f05050'];
   themeCon.addScope(scope);
   scope.choseTheme= function () {
   themeCon.closeScope(scope);
   var index=themeCon.getIndex(scope);
   var color=colorArray[index];
   scope.$emit("getArticleThemeColor",{'color':color});
   console.log(scope.flag);
   };
  }
  }
 })
})()

这里简单说一下,实现的主要思想就是,通过指令单独生成scope,每一个指令都是一个单独的scope,这样每个ng-modal都独立出来了,然后通过继承一个总的指令来实现控制。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者使用Angular.js能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
THREE.JS入门教程(1)THREE.JS使用前了解
Jan 24 Javascript
ExtJS4 动态生成的grid导出为excel示例
May 02 Javascript
js动态删除div元素基本思路及实现代码
May 08 Javascript
JS截取字符串实例详解
Nov 24 Javascript
jquery插件Jplayer使用方法简析
Apr 22 Javascript
AngularJS入门教程之链接与图片模板详解
Aug 19 Javascript
javascript汉字拼音互转的简单实例
Oct 09 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
自定义事件解决重复请求BUG的问题
Jul 11 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
Aug 30 Javascript
canvas实现图片根据滑块放大缩小效果
Feb 24 #Javascript
详解JS中的立即执行函数
Feb 24 #Javascript
几行js代码实现自适应
Feb 24 #Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 #Javascript
JavaScript基本类型值-Number类型
Feb 24 #Javascript
AngularJS Toaster使用详解
Feb 24 #Javascript
js获取隐藏元素的宽高
Feb 24 #Javascript
You might like
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python列表去重的二种方法
2014/02/14 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
python 实现多维数组转向量
2019/11/30 Python
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
.NET是怎么支持多种语言的
2015/02/24 面试题
应届生简历中的自我评价
2014/01/13 职场文书
文艺晚会主持词
2014/03/24 职场文书
市场开发计划书
2014/05/07 职场文书
企业党员一句话承诺
2014/05/30 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
小学教师个人总结
2015/02/05 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
小学见习报告
2015/06/23 职场文书