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』限制Input只能输入数字实现思路及代码
Apr 22 Javascript
Javascript中实现trim()函数的两种方法
Feb 04 Javascript
超赞的动手创建JavaScript框架的详细教程
Jun 30 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
Nov 18 Javascript
Vue组件化通讯的实例代码
Jun 23 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
Jul 21 Javascript
解决vue移动端适配问题
Dec 12 Javascript
小试SVG之新手小白入门教程
Jan 08 Javascript
微信小程序生成海报分享朋友圈的实现方法
May 06 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
May 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
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
PHP 文件上传全攻略
2010/04/28 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
详解如何较好的使用js
2016/12/16 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
详解vue-router传参的两种方式
2018/09/10 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
Django中使用Celery的方法示例
2018/11/29 Python
Django实现跨域的2种方法
2019/07/31 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
四年大学生活的自我评价范文
2014/02/07 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
保护环境标语
2014/06/09 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis