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星级插件、支持页面中多次使用
Mar 25 Javascript
jQuery Tools tab(幻灯片)
Jul 14 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 Javascript
php析构函数的具体用法小结
Mar 11 Javascript
判断iframe里的页面是否加载完成
Jun 06 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
js随机生成一个验证码
Jun 01 Javascript
解决webpack打包速度慢的解决办法汇总
Jul 06 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
Jan 03 Javascript
Vue.js特性Scoped Slots的浅析
Feb 20 Javascript
详解微信小程序调用支付接口支付
Apr 28 Javascript
亲自动手实现vue日历控件
Jun 26 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载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
机械工程系毕业生求职信
2013/09/27 职场文书
会计专业的自荐信
2013/12/12 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
总经理任命书范本
2014/06/05 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
python实现双向链表原理
2022/05/25 Python