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 相关文章推荐
jcarousellite.js 基于Jquery的图片无缝滚动插件
Dec 30 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
Jan 15 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
Apr 24 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
Feb 19 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
Apr 17 Javascript
浅谈angularJS中的事件
Jul 12 Javascript
JS数组搜索之折半搜索实现方法分析
Mar 27 Javascript
vue 组件高级用法实例详解
Apr 11 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
Aug 12 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
Apr 03 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 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 imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
php遍历CSV类实例
2015/04/14 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
js实现简单的验证码
2015/12/25 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
Python 创建子进程模块subprocess详解
2015/04/08 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
python中的随机函数random的用法示例
2018/01/27 Python
Python实现ping指定IP的示例
2018/06/04 Python
python下载微信公众号相关文章
2019/02/26 Python
浅谈Python反射 &amp; 单例模式
2019/03/21 Python
自定义django admin model表单提交的例子
2019/08/23 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
企业给企业的表扬信
2014/01/13 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
毕业设计答辩开场白
2015/05/29 职场文书