Javascript 使用angular js的多选下拉复选框
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/36693404/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
multiselectable dropdown checkboxes using angular js
提问by Bonyjose
I want to design a dropdownlist of checkboxes and make the checkboxes multi-selectable. I have used the below code,but I am unable to make multiple selections as the template refreshes each time I click on a checkbox,please suggest some ideas?
我想设计一个复选框的下拉列表并使复选框多选。我使用了下面的代码,但是每次单击复选框时模板都会刷新,因此无法进行多项选择,请提出一些想法?
{ <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>
}
回答by rhitz
You can use directive like angularjs-dropdown-multiselect, which you can find very easily on internet
你可以使用像angularjs-dropdown-multiselect这样的指令,你可以很容易地在互联网上找到它
Here are some example:
下面是一些例子:
angularjs-dropdown-multiselect- Fiddle
multiselectDropdown- Fiddle
Another example of angularjs-dropdown-multiselect- Fiddle
angularjs-dropdown-multiselect-小提琴
multiselectDropdown-小提琴
angularjs-dropdown-multiselect 的另一个例子- Fiddle
Code Snippet:
代码片段:
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>
回答by Facundo Colombier
a simple workaround that I've found is using Angular Directives for Bootstrapusing the auto-close="outsideClick"
and the code should be like this:
一个简单的解决方法我发现是使用角指令进行引导使用auto-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>
回答by Ujjwal Pathak
You could go for Angular Material Design Library
你可以去 Angular Material Design Library