Javascript 2多选单选列表

Javascript 2多选单选列表,javascript,arrays,angularjs,multi-select,Javascript,Arrays,Angularjs,Multi Select,我有两个多选元素,都从变量列表中获取选项。 如果选择某个变量作为行变量,则该变量将不会显示在列选择选项中。若用户取消选择选项,那个么变量将显示在两个列表中 $scope.variables = ['a','b','c','d','e','f']; <select multiple ng-model="selectedAsRows" ng-options="v for v in variables"></select> <select multiple ng-mod

我有两个多选元素,都从变量列表中获取选项。 如果选择某个变量作为行变量,则该变量将不会显示在列选择选项中。若用户取消选择选项,那个么变量将显示在两个列表中

$scope.variables = ['a','b','c','d','e','f'];

<select multiple ng-model="selectedAsRows" ng-options="v for v in variables"></select>
<select multiple ng-model="selectedAsCols" ng-options="v for v in variables"></select>
$scope.variables=['a','b','c','d','e','f'];

我想我明白你想要什么了。下面是一个例子:

关键是使用如下自定义过滤器:

filter: { name: '!' + selectedAsFriend.name }
编辑:

这是您的multiSelect案例。我已经创建了自定义过滤器

app.filter('myFilter', function() {
  return function(inputList, list) {
     return inputList.filter(isAlreadySelected(list));
};

  function isAlreadySelected(list){
    return function(elem){
      if (list.indexOf(elem) == -1) 
        return true;
      else
        return false;
    }
  }

});
然后在html文件中使用它:

<select multiple ng-model="selectedAsRows" ng-options="v for v in variables | myFilter: selectedAsCols"></select>
<select multiple   ng-model="selectedAsCols" ng-options="v for v in variables | myFilter: selectedAsRows"></select>

请看完整的代码:


是否有任何plunker或fiddle来显示其示例?因此,您希望从另一个选择列表的选项列表中筛选一个选择列表的选定值?我的第一个想法类似于
ng options=“v for v in variables | filter:selectedAsRows
(另一个类似)。虽然不太清楚,但可能是一个很好的起点。:)我尝试使用范围解决问题。观察我尝试从选项列表中删除的选项Angular的过滤器是否是一个更干净的解决方案。看看我的示例它就像你发送的一样,但我的选择元素是多选的,我有两个或三个可选的行、列、层我有edited我的回答是给你看了一个适合你的例子。