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我的回答是给你看了一个适合你的例子。