2014-03-01 88 views
0

我有一個帶有ng-repeat的表單,它載入用戶添加的一組預定日期。假設用戶已將第一天添加到收藏中,並從下拉列表中選擇星期一。當用戶將第二天添加到集合時,我希望下拉列表可以在星期一過濾掉,因爲它已經被使用了,但是在星期一被選擇的那一天的星期一不會過濾掉。有沒有人有如何做到這一點的例子?已被選中的篩選器選項

編輯:

$scope.schedule = {days: []}; 

從Zacks的例子更新jsfiddle

回答

2

*與編輯更新,以選擇一個選擇的問題,*

這裏每一次,它調用updateAvailability()

<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; 
    }); 
} 

查看演示JSFiddle

+0

謝謝,我更新了的jsfiddle以更好地滿足我現在有。希望這能更好地理解我想要完成的事情。 –

+0

@GaryLCoxJr更新了我的答案以適應您的更改。 –

+0

太棒了!非常感謝您的幫助 –