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的递归之递归与循环示例介绍
Aug 05 Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 Javascript
Javascript监视变量变化的方法
Jun 09 Javascript
判断是否存在子节点的实现代码
May 18 Javascript
关于数据与后端进行交流匹配(点亮星星)
Aug 03 Javascript
浅谈javascript中的Function和Arguments
Aug 30 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
jquery将标签元素的高设为屏幕的百分比
Apr 19 jQuery
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
Nov 20 Javascript
vue项目中用cdn优化的方法
Jan 03 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
Mar 09 Javascript
ES6入门教程之let、const的使用方法
Apr 13 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
PHP5 安装方法
2007/01/15 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
3种php生成唯一id的方法
2015/11/23 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
php 数据结构之链表队列
2017/10/17 PHP
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
ajax异步请求详解
2017/01/06 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
下载给定网页上图片的方法
2014/02/18 Python
python中as用法实例分析
2015/04/30 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
运动会入场解说词
2014/02/07 职场文书
《中华少年》教学反思
2014/02/15 职场文书
大学军训感言800字
2014/02/27 职场文书