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 相关文章推荐
JQueryEasyUI Layout布局框架的使用
Apr 08 Javascript
用JavaScript实现动画效果的方法
Jul 20 Javascript
深入理解javascript动态插入技术
Nov 12 Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
Sep 28 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
JS实现的3des+base64加密解密算法完整示例
May 18 Javascript
详解使用create-react-app添加css modules、sasss和antd
Jul 31 Javascript
js异步上传多张图片插件的使用方法
Oct 22 Javascript
ES6基础之展开语法(Spread syntax)
Feb 21 Javascript
VUE项目axios请求头更改Content-Type操作
Jul 24 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
输出控制类
2006/10/09 PHP
在PHP中使用与Perl兼容的正则表达式
2006/11/26 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
js href的用法
2010/05/13 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
flask框架中的cookie和session使用
2021/01/31 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
益模软件Java笔试题
2012/03/27 面试题
C#如何进行LDAP用户校验
2012/11/21 面试题
助学贷款贫困证明
2014/09/23 职场文书
公司地址变更通知
2015/04/25 职场文书
新闻稿件写作范文
2015/07/18 职场文书