Angular实现一个简单的多选复选框的弹出框指令

前端之家收集整理的这篇文章主要介绍了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">
    <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>



此文档的作者:justforuse
Github Pages:justforuse

猜你在找的Angularjs相关文章