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 相关文章推荐
jquery 使用点滴函数代码
May 20 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
Mar 21 Javascript
页面载入结束自动调用js函数示例
Sep 23 Javascript
三种Node.js写文件的方式
Mar 08 Javascript
JavaScript的函数式编程基础指南
Mar 19 Javascript
jQuery根据ID、CLASS、等获取对象的实例
Dec 04 Javascript
解决拦截器对ajax请求的拦截实例详解
Dec 21 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
vue 项目如何引入微信sdk接口的方法
Dec 18 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
Dec 16 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
Aug 26 Javascript
JavaScript定时器常见用法实例分析
Nov 15 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 将图片按创建时间进行分类存储的实现代码
2010/01/05 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
浅谈Javascript中的Label语句
2016/12/14 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
python实现复制文件到指定目录
2019/10/16 Python
详解python破解zip文件密码的方法
2020/01/13 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
Python打印不合法的文件名
2020/07/31 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
2014年班主任自我评价范文
2014/04/23 职场文书
市场调查策划方案
2014/06/10 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
英语辞职信范文
2015/02/28 职场文书
centos7安装mysql5.7经验记录
2022/05/02 Servers
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server