Javascript 如何使用Angularjs过滤器过滤绑定到两个选择框的数组
我有两个选择框(框1和框2),它们绑定到模型数组。在框1中选择选项时,该项目不应显示在框2中,反之亦然。我怎样才能在Angularjs中做到这一点 下面是我的HTMLJavascript 如何使用Angularjs过滤器过滤绑定到两个选择框的数组,javascript,jquery,angularjs,angularjs-filter,Javascript,Jquery,Angularjs,Angularjs Filter,我有两个选择框(框1和框2),它们绑定到模型数组。在框1中选择选项时,该项目不应显示在框2中,反之亦然。我怎样才能在Angularjs中做到这一点 下面是我的HTML <select class="form-control" name"box1" ng-model="data.box1" ng-options="sq.text for sq in array1.boxvalue | filter :data.box1" required><option value="">
<select class="form-control" name"box1" ng-model="data.box1" ng-options="sq.text for sq in array1.boxvalue | filter :data.box1" required><option value="">Choose 1</option></select>
<select class="form-control" name"box2" ng-model="data.box2" ng-options="sq.text for sq in array1.boxvalue | filter: data.box1"" required><option value="">Choose 2</option></select>
array1.boxvalue = {['id':1,'text':'test1'],['id':2,'text':'test2'],['id':3,'text':'test3']}
选择1
您的想法是正确的,您需要一个过滤器,它将遍历数组并排除您不喜欢的值
(我是在头脑中编写代码,所以我不确定它是否100%有效。)
app.filter('excludeValue',function(){
返回函数(输入,val){
var newArray=[];
//循环浏览所有结果并删除不需要的结果
对于(var n=0;n
编辑:这是一个工作视图:
<select ng-model="data.box1"
ng-options="sq.text for sq in array1 | filter: notinbox2" required></select>
<select ng-model="data.box2" ng-options="sq.text for sq in array1 |filter: notinbox1" required></select>
把你的问题简化了几件事
普朗克[
<select ng-model="data.box1"
ng-options="sq.text for sq in array1 | filter: notinbox2" required></select>
<select ng-model="data.box2" ng-options="sq.text for sq in array1 |filter: notinbox1" required></select>
$scope.array1 =[{'id':1,'text':'test1'},{'id':2,'text':'test2'},{'id':3,'text':'test3'}]
$scope.data={}
$scope.notinbox2 = function(item){
if(item == $scope.data.box2)
{
return false
}
else
return true
}
$scope.notinbox1 = function(item){
if(item == $scope.data.box1)
{
return false
}
else
return true
}