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 相关文章推荐
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
javascript显示用户停留时间的简单实例
Aug 05 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
Oct 24 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
js实现点击文本框显示日期选择器特效代码分享
May 21 Javascript
老生常谈js动态添加事件--- 事件委托
Jul 19 Javascript
微信小程序 loading 详解及实例代码
Nov 09 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
Mar 09 Javascript
vue实现图书管理demo详解
Oct 17 Javascript
详解Vue组件实现tips的总结
Nov 01 Javascript
vue.js实现的幻灯片功能示例
Jan 18 Javascript
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
如何在 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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
php上传excel表格并获取数据
2017/04/27 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
微信公众号H5支付接口调用方法
2019/01/10 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
JavaScript实现滚动加载更多
2020/12/27 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python中列表的一些基本操作知识汇总
2015/05/20 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
python的Jenkins接口调用方式
2020/05/12 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
基于Python正确读取资源文件
2020/09/14 Python
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
int和Integer有什么区别
2013/05/25 面试题
酒店营销策划方案
2014/02/07 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
七年级英语教学反思
2016/02/15 职场文书
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库