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 相关文章推荐
在js中单选框和复选框获取值的方式
Nov 06 Javascript
jQuery函数的等价原生函数代码示例
May 27 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
May 13 Javascript
用js读、写、删除Cookie代码续篇
Dec 03 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
Jun 10 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 Javascript
javascript学习之json入门
Dec 22 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
Aug 29 Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 Javascript
vuex操作state对象的实例代码
Apr 25 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 header下载函数
2014/01/31 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
JS仿淘宝实现的简单滑动门效果代码
2015/10/14 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
python去掉空白行的多种实现代码
2018/03/19 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
详解python tkinter 图片插入问题
2020/09/03 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
出国签证在职证明
2014/01/16 职场文书
新春文艺演出主持词
2014/03/27 职场文书
城管综合整治方案
2014/05/01 职场文书
论文诚信承诺书
2014/05/23 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
MySQL 覆盖索引的优点
2021/05/19 MySQL