温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Angular.js如何实现多个checkbox只能选择一个

发布时间:2021-06-21 13:41:50 来源:亿速云 阅读:245 作者:小新 栏目:web开发

这篇文章给大家分享的是有关Angular.js如何实现多个checkbox只能选择一个的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

首先来看看效果

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如何实现多个checkbox只能选择一个”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI