Javascript:选择中的唯一选项

时间:2015-12-09 09:55:17

标签: javascript jquery html angularjs

我想存档以在选择中包含唯一选项。 例如:

起初只有一个Select。但是你可以无限地添加Selects。所有Selects使用相同的数组来填充选项。

数组例如是[1,2]。 如果您知道在第一个Select中选择“1”,则第二个Select应该只有“2”作为选项。

由于

1 个答案:

答案 0 :(得分:0)

过滤器的外观示例:

的JavaScript

app.filter('notInArray', function() {
    return function(inputArray, filterArray) {
        if (inputArray) {
            return inputArray.filter(function (item) {
                return !filterArray || filterArray.indexOf(item) === -1;
            });
        }
        return [];
    }
});

用法:

<select data-ng-model="mySelect" data-ng-options="item as item.Name for item in items | notInArray:mySelected">
    <option value="">-- Choose option --</option>
</select>

然后在$watch上有一个mySelect,可以将其添加到mySelected并将mySelect设置为null。这样您只需要一个select。您可能应该实现一种从mySelected array删除选项的方法。

示例:

的JavaScript

$scope.$watch("mySelect", function(){
    if($scope.mySelect){
        $scope.mySelected.push($scope.mySelect);
        $scope.mySelect = null;
    }
});

$scope.removeOption = function(option){
    $scope.mySelected.splice($scope.mySelected.indexOf(option), 1);
}