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 跳转代码集合
Dec 03 Javascript
jQuery库与其他JS库冲突的解决办法
Feb 07 Javascript
node.js中的socket.io的广播消息
Dec 15 Javascript
jQuery实现html表格动态添加新行的方法
May 28 Javascript
JS如何判断json是否为空
Jul 06 Javascript
JS 面向对象之继承---多种组合继承详解
Jul 10 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
jQuery页面弹出框实现文件上传
Feb 09 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
May 02 Javascript
jQuery使用ajax_动力节点Java学院整理
Jul 05 jQuery
es7学习教程之fetch解决异步嵌套问题的方法示例
Jul 21 Javascript
node事件循环和process模块实例分析
Feb 14 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
php对大文件进行读取操作的实现代码
2013/01/23 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python控制Firefox方法总结
2019/06/03 Python
Python模块的制作方法实例分析
2019/12/21 Python
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
有趣的广告词
2014/03/18 职场文书
敬老院活动总结
2014/04/28 职场文书
介绍信的写法
2015/01/31 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
工资证明范本
2015/06/12 职场文书
关于远足的感想
2015/08/10 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书