Angularjs 筛选已选择的选项
我有一个带有ng repeat的表单,它加载用户添加的一组计划天数。假设用户已将第一天添加到集合中,并从下拉列表中选择了星期一。当用户将第二天添加到集合中时,我希望下拉列表过滤掉星期一,因为它已经被使用,但是对于选择星期一的那天,不过滤掉星期一。有没有人能举例说明如何做到这一点 编辑:Angularjs 筛选已选择的选项,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个带有ng repeat的表单,它加载用户添加的一组计划天数。假设用户已将第一天添加到集合中,并从下拉列表中选择了星期一。当用户将第二天添加到集合中时,我希望下拉列表过滤掉星期一,因为它已经被使用,但是对于选择星期一的那天,不过滤掉星期一。有没有人能举例说明如何做到这一点 编辑: $scope.schedule = {days: []}; 从Zacks示例更新*通过对问题的编辑更新* 在这里,每次选择一个选项时,它都会调用updateAvailability() 查看演示谢谢,我更新了J
$scope.schedule = {days: []};
从Zacks示例更新*通过对问题的编辑更新* 在这里,每次选择一个选项时,它都会调用updateAvailability()
查看演示谢谢,我更新了JSFIDLE以更好地匹配我现在拥有的。希望这能让我更好地理解我要完成的任务。@GaryLCoxJr更新了我的答案,以配合您的变化。太棒了!非常感谢你的帮助
<div ng-repeat="schedDay in schedule.days">
<select ng-model="schedDay.day" ng-change="updateAvailability()">
<option ng-repeat="day in days|orderBy:value" ng-disabled="!day.selectable" value="{{day.day}}">{{day.display}}</option>
</select>
</div>
$scope.updateAvailability = function() {
var used = $scope.schedule.days.map(function(day) {
return parseInt(day.day || '-1');
});
angular.forEach($scope.days, function(day) {
day.selectable = used.indexOf(day.day) === -1 ? true : false;
});
}