我有四个选项的下拉列表。我选择第一个选项为'John(1)'并添加一行。现在下一个下拉列表应该只显示下拉列表中的三个选项,即它应该排除前一个下拉选择值的值'John(1)'。在下一个添加行中,它应排除前两个选定的下拉列值。这可以实现吗?先感谢您。下面是小提琴。
Decorator pattern
答案 0 :(得分:0)
为ng-repeat添加一个过滤器,以避免已经添加的对象:
$scope.notSelected = function(item){
for (var i in $scope.viewTemplateRow){
if ($scope.viewTemplateRow[i].id==item.id)
return false
}
return true;
}
您的HTML将如下所示:
<option ng-repeat="option in viewTemplateData | filter: notSelected" value="{{option.id}}" ng-selected="{{option.id == mapping.id}}" ng-model="viewTemplateData">{{option.name}} ( {{option.id}} )</option>
注意:请考虑为选择项的ng-options替换ng-repeat指令。