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 相关文章推荐
setAttribute 与 class冲突解决
Feb 17 Javascript
javascript 操作文件 实现方法小结
Jul 02 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
Jun 05 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
Sep 22 Javascript
jQuery中after()方法用法实例
Dec 25 Javascript
详解使用VueJS开发项目中的兼容问题
Aug 02 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
Sep 13 Javascript
微信小程序移动拖拽视图-movable-view实例详解
Aug 17 Javascript
让IDE识别webpack的别名alias的实现方法
May 06 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
May 09 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
isset和empty的区别
2007/01/15 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
[JS]点出统计器
2020/10/11 Javascript
javascript XML数据显示为HTML一例
2008/12/23 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
vue filters的使用详解
2018/06/11 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
Python学习资料
2007/02/08 Python
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
python模块之re正则表达式详解
2017/02/03 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
程序员岗位职责
2013/11/11 职场文书
商场促销活动方案
2014/02/08 职场文书
群教班子对照检查材料
2014/08/26 职场文书