Javascript AngularJS禁用以前选择的下拉选项

Javascript AngularJS禁用以前选择的下拉选项,javascript,angularjs,select,dropdown,Javascript,Angularjs,Select,Dropdown,var demoApp=angular.module('myApp',[]); demoApp.controller('QaController',函数($scope,$http){ $scope.loopData=[{},{}]; $scope.questions={ 型号:空, 可用选项:[ {id:'1',name:'你童年的名字是什么?}, {id:'2',名字:“你的第一所学校是什么?”}, {id:'3',姓名:“你的第一个工作地点是哪里?”}, {id:'4',name:“你的宠物

var demoApp=angular.module('myApp',[]);
demoApp.controller('QaController',函数($scope,$http){
$scope.loopData=[{},{}];
$scope.questions={
型号:空,
可用选项:[
{id:'1',name:'你童年的名字是什么?},
{id:'2',名字:“你的第一所学校是什么?”},
{id:'3',姓名:“你的第一个工作地点是哪里?”},
{id:'4',name:“你的宠物名是什么?”}
]
};
$scope.submit=函数(){
$scope.result=$scope.loopData;
};
});

Q.{{$index+1}}
选择问题
提交
{{result}json}
var demoApp=angular.module('myApp',[]);
demoApp.controller('QaController',函数($scope,$http){
$scope.loopData=[];
$scope.loopData=[{
型号:空,
问题:“,
可用选项:[
{id:'1',name:'What your children name?',disable:false},
{id:'2',name:“你的第一所学校是什么?”,disable:false},
{id:'3',name:“您的第一个工作地点是哪里?”,disable:false},
{id:'4',name:“你的宠物名是什么?”,disable:false}
]
},{ 
型号:空,
问题:“,
可用选项:[
{id:'1',name:'What your children name?',disable:false},
{id:'2',name:“你的第一所学校是什么?”,disable:false},
{id:'3',name:“您的第一个工作地点是哪里?”,disable:false},
{id:'4',name:“你的宠物名是什么?”,disable:false}
]
}]
$scope.changItem=函数(索引,_id){
$scope.loopData=$scope.loopData.map(函数(obj,i){
调试器
如果(i>索引){
obj.availableOptions.map(功能(项){
如果(item.id==\u id){
item.disable=true
}否则{
item.disable=false
}
退货项目
})
}else{debugger
obj.availableOptions.map(功能(项){
调试器
如果(item.id==\u id){
item.disable=true
}否则{
item.disable=false
}
退货项目
}) 
}
返回obj
});
}
$scope.submit=函数(){
$scope.result=$scope.loopData;
};
});

Q.{$index+1}{{x.modelVal}}
选择问题
{{option.name}
提交
{{result}json}

您可以创建一个自定义的
过滤器
,使其更具通用性(用于更多选择输入)

过滤器可以是:

然后,您可以根据自定义的
过滤器
对所选输入的
选项进行过滤,如下所示:


选择问题

这里有一个可行的

@Chinmay235您使用的是哪个版本的angular?@GangadharJannu我使用的是AngularJS v1.5.0如果您对使用插件感兴趣,可以查看。这是值得使用的I,我看到了你的代码片段。一切正常,但有点小错误。我在
Q.1
中选择了
你的第一个工作地点是哪里?
,我在
Q.2
中看到该选项被禁用,这很好。但是
Q.2
当我选择其他选项时,比如
你的宠物名是什么?
然后再次想在
Q.2
中更改,我看到有启用
你的第一个工作地点是什么?
Q.1
中之前已经选择了哪一个
.filter('excludeEqualAnswers', function() {
  return function(input, index, selectedQuestions) {

    if (!selectedQuestions[index].question) {
      function notExistInSelectedQuestions(output) {
        return !selectedQuestions.map(val => val.question).includes(output.id);
      }

      return input.filter(notExistInSelectedQuestions);
    } else {
      return input
    }
  }
})
 <select  class="form-control" name="question-drop" id="question_dropdown" ng-model="x.question" ng-options="option.id as option.name for option in questions.availableOptions | excludeEqualAnswers:$index:loopData">
        <option value="">Select Question</option>
      </select>