Angular实现一个简单的多选复选框的弹出框指令实例


Posted in Javascript onApril 25, 2017

之前的文章有写过包含树结构下拉框的。

要实现一个包含多个复选框的下拉框该如何做呢?

先上个效果图吧:

Angular实现一个简单的多选复选框的弹出框指令实例

代码:

<!DOCTYPE html>
<html ng-app="app">

<head>
  <meta charset="UTF-8">
  <title></title>
  <link rel="stylesheet" type="text/css" href="../bootstrap/css/bootstrap.css" rel="external nofollow" >
  <script src="../jquery.js"></script>
  <script src="../bootstrap/js/bootstrap.js"></script>
  <style type="text/css">
  label {
    display: block;
    margin-top: 3px;
  }

  label.list:hover {
    cursor: pointer;
    background-color: red;
  }

  label.selected {
    background-color: red;
  }
  </style>
  <script src="../angular.js"></script>
  <script type="text/javascript">
  angular.module("app", [])
    .controller("ctrl", function($scope) {
      jQuery(".dropdown-menu *").click(function(e){
        e.stopPropagation();
      });


      $scope.selectList = [{
        name: "选项1",
        value: "item1",
        select: false
      }, {
        name: "选项2",
        value: "item2",
        select: true
      }];
      $scope.$watch("selectList", function(n, o) {

        $scope.result = (function(arr) {
          var t = [];
          for (var i = 0; i < arr.length; i++) {
            if (arr[i].select) {
              t.push(arr[i].name);
            }
          }
          if (!t.length) {
            t.push("--请选择--");
          }
          return t.join(",");
        })($scope.selectList);
      }, true)

    })
    .directive("multiSelect", function() {
      return {
        scope: {
          data: "=multiSelect"
        },
        templateUrl: "option.html"
      }
    })
  </script>
</head>

<body>
  <div ng-controller="ctrl">

    <div class="dropdown">
      <span class="dropdown-toggle", data-toggle="dropdown">
        <button ng-bind="result"> </button>
        <span class="caret"></span>
      </span>
      <ul class="dropdown-menu">
        <li>
          //下拉框数据绑定
          <div multi-select="selectList"></div>
        </li>
      </ul>
    </div>

  </div>
</body>

</html>

指令模版代码option.html:

<label for="{{'check_' + $index}}" ng-class="{list:true, selected:data[$index].select}" ng-repeat = "item in data">
  //为不同的选项定义不同的id
  <input id="{{'check_' + $index}}" type="checkbox" ng-model="data[$index].select">
  {{item.name}}

</label>

以上这篇Angular实现一个简单的多选复选框的弹出框指令实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
Aug 29 Javascript
JavaScript中检测变量是否存在遇到的一些问题
Nov 11 Javascript
简单的ajax连接库分享(不用jquery的ajax)
Jan 19 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
May 20 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
Aug 11 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
Mar 10 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
Aug 10 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
Mar 04 Javascript
详解AngularJS 路由 resolve用法
Apr 24 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
Sep 23 Javascript
javaScript Array api梳理
Mar 31 Javascript
如何在 Vue.js 中使用第三方js库
Apr 25 #Javascript
Javascript中click与blur事件的顺序详析
Apr 25 #Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
Apr 25 #Javascript
ES6中Math对象新增的方法实例详解
Apr 25 #Javascript
jquery.form.js异步提交表单详解
Apr 25 #jQuery
关于jQuery中fade(),show()起始位置的一点小发现
Apr 25 #jQuery
深入理解Javascript中的作用域链和闭包
Apr 25 #Javascript
You might like
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
[08:40]Navi Vs Newbee
2018/06/07 DOTA
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
python list转dict示例分享
2014/01/28 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
Python正则表达式常用函数总结
2017/06/24 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
生物化学研究助理员求职信
2013/10/09 职场文书
采购经理岗位职责
2014/02/16 职场文书
大型演出策划方案
2014/05/28 职场文书
会计学专业自荐信
2014/06/25 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
市场督导岗位职责
2015/04/10 职场文书
党小组鉴定意见
2015/06/02 职场文书