【问题标题】:multiselectable dropdown checkboxes using angular js使用角度js的多选下拉复选框
【发布时间】:2018-05-04 19:04:04
【问题描述】:

我想设计一个复选框的下拉列表并使复选框具有多选性。我使用了下面的代码,但是每次单击复选框时模板都会刷新,因此无法进行多项选择,请提出一些想法?

{   <ul class="status-select" class="status-select" ng-if="$index == selectedFilterIndex">
     <li ng-repeat="DataValue in filter.Data.Value">
        <input type="checkbox" ng-click="OnDropDownSelectionChanged(filter,DataValue)">
                        {{DataValue.displayText}}
     </li>
     </ul> 
}

【问题讨论】:

  • 嗨,但他们在代码中使用了一些“bower”库,我只想在角度实现..
  • @Bonyjose 你不需要凉亭,也可以选择下载.zip
  • @Shekhar Swami 在您的编辑中{ } 是从哪里来的?
  • @ShekharSwami 请不要进行您不确定的编辑。它不是必需的,也无效

标签: javascript angularjs checkbox drop-down-menu


【解决方案1】:

您可以使用 angularjs-dropdown-multiselect 之类的指令,您可以在互联网上轻松找到该指令

这里有一些例子:

  1. angularjs-dropdown-multiselect - Fiddle

  2. multiselectDropdown - Fiddle

  3. angularjs-dropdown-multiselect 的另一个例子 - Fiddle

代码片段:

var myApp = angular.module('exampleApp', ['angularjs-dropdown-multiselect']);

myApp.controller('appController', ['$scope',
  function($scope) {

    $scope.example13model = [];
    $scope.example13data = [{
      id: 1,
      label: "David"
    }, {
      id: 2,
      label: "Jhon"
    }, {
      id: 3,
      label: "Lisa"
    }, {
      id: 4,
      label: "Nicole"
    }, {
      id: 5,
      label: "Danny"
    }];

    $scope.example13settings = {
      smartButtonMaxItems: 3,
      smartButtonTextConverter: function(itemText, originalItem) {
        if (itemText === 'Jhon') {
          return 'Jhonny!';
        }

        return itemText;
      }
    };
  }
]);
div, h1, a {
  padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js"></script>
<link href="https://bootswatch.com/slate/bootstrap.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angularjs-dropdown-multiselect/1.2.0/angularjs-dropdown-multiselect.min.js"></script>

<h2>
    Example of sytled angularjs-dropdown-multiselect  
</h2>

<a href="http://dotansimha.github.io/angularjs-dropdown-multiselect/#/">Source documentation</a>

<div ng-app="exampleApp" ng-controller="appController">

  <div ng-dropdown-multiselect="" options="example13data" selected-model="example13model" extra-settings="example13settings"></div>

</div>

【讨论】:

  • 哇,数字 3 太棒了!请记住不要在您的实际项目中使用外部脚本。有人可能会在你的外部库中注入一些疯狂的东西......(中间人攻击)
  • 您好,我想为此添加按钮单击事件,您能告诉我如何设置吗?我有创建事件,但它没有击中你能解决我吗
【解决方案2】:

我发现一个简单的解决方法是使用Angular Directives for Bootstrapauto-close="outsideClick",代码应该是这样的:

<div class="dropdown" uib-dropdown auto-close="outsideClick" on-toggle="toggled(open)">
  <a class="btn btn-primary" uib-dropdown-toggle>Toggle</a>
  <ul class="dropdown-menu status-select" class="status-select" ng-if="$index == selectedFilterIndex" uib-dropdown-menu>
    <li ng-repeat="DataValue in filter.Data.Value">
      <div class="checkbox">
        <label>
          <input type="checkbox" ng-click="OnDropDownSelectionChanged(filter,DataValue)">
                      {{DataValue.displayText}}
        </label>
      </div>
    </li>
  </ul>
</div>

【讨论】:

    【解决方案3】:

    你可以选择 Angular Material Design Library

    Select with Option Groups

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 1970-01-01
      • 2016-12-30
      • 2022-06-16
      • 2019-08-03
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      相关资源
      最近更新 更多