angularjs - 如何在角度 js 中使用带有标题的多选下拉菜单
问题描述
<div class="col-md-3">
<select
ng-model="carId" >
<option value="">Please select</option>
<optgroup label="Common Car Makes">
<option ng-repeat="car in ctrl.specificcar" ng-value="car.name">{{car.name}}</option>
</optgroup>
<optgroup label="All Car Makes">
<option ng-repeat="car in ctrl.allcars" ng-value="car.name">{{car.name}}</option>
</optgroup>
</select>
</div>
我已经尝试过这个及其对单个下拉列表的工作,我想在多选下拉列表中使用它。如何转换此代码?
解决方案
我希望这是您正在寻找的:
HTML:
<div class="col-md-3">
<select ng-model="car" ng-change="onSelect(car)">
<option value="">Please select</option>
<optgroup label="Common Car Makes">
<option ng-repeat="car in specificList" value="{{car.groupName}}$${{car.id}}">{{car.name}}</option>
</optgroup>
<optgroup label="All Car Makes">
<option ng-repeat="car in allList" value="{{car.groupName}}$${{car.id}}">{{car.name}}</option>
</optgroup>
</select>
</div>
Selected Car: {{selectedCar}}
JS:
$scope.selectedCar = {};
$scope.specificList = [{"id": 1, "name": "Audi", "groupName": "specific"}, {"id": 2,"name": "BMW", "groupName": "specific"}, {"id": 3,"name": "Toyota", "groupName": "specific"}];
$scope.allList = [{"id": 1, "name": "Audi", "groupName": "all"}, {"id": 2,"name": "BMW", "groupName": "all"}, {"id": 3,"name": "Toyota", "groupName": "all"}];
function findFromArray(arrName, value){
var found = $scope[arrName].filter(function(v){
return v.id == value;
});
return found ? found[0] : null;
}
$scope.onSelect = function(groupAndCar){
var splitCar = groupAndCar.split('$$'),
group = splitCar[0],
carId = splitCar[1];
$scope.selectedCar[group] = findFromArray(group+'List', carId);
};
推荐阅读
- node.js - 如何清除 Watson Assistant 中的所有上下文,例如在“试用”上单击“清除”
- reactjs - 如何使用 react 和 Papaparse 读取和解析 CSV
- javascript - 如何使用 vuejs 删除表中的当前 tr 行
- node.js - 可以使用 execFile 在 nodejs 中运行 curl
- python - 是否有用于在 IIS 上使用进度条在 Django 中上传大文件的配置?
- vim - 从 :Lexplore 在新标签页中打开
- python - 显示响应位置标头,包括是否有问号
- function - 当我的函数提交时,我试图通过 react-router-dom 重定向,但我不断收到此错误
- django - 用于从数据库中检索数据并对该数据进行操作的 Django 视图
- chart.js - 使用 chart.js 和注释在一小时内突出显示背景