Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 选择更新其他选择_Angularjs_Angularjs Ng Repeat_Ng Repeat - Fatal编程技术网

Angularjs 选择更新其他选择

Angularjs 选择更新其他选择,angularjs,angularjs-ng-repeat,ng-repeat,Angularjs,Angularjs Ng Repeat,Ng Repeat,我用ng repeat生成了n个选择,当我更改其中一个选择时,我需要更新其他选择中的所有选项。我需要建立一个投票机制。例如: Init: - select 1: 1,2,3,4 - select 2: 1,2,3,4 - select 3: 1,2,3,4 - select 4: 1,2,3,4 After change select 1: - select 1: 2 (selected) - select 2: 1,3,4 - select 3: 1,3,4 - select 4: 1,3,

我用ng repeat生成了n个选择,当我更改其中一个选择时,我需要更新其他选择中的所有选项。我需要建立一个投票机制。例如:

Init:
- select 1: 1,2,3,4
- select 2: 1,2,3,4
- select 3: 1,2,3,4
- select 4: 1,2,3,4

After change select 1:
- select 1: 2 (selected)
- select 2: 1,3,4
- select 3: 1,3,4
- select 4: 1,3,4

After change select 2:
- select 1: 2 (selected)
- select 2: 4
- select 3: 1,3
- select 4: 1,3
...etc
选择数是动态的,选项始终显示生成的选择数

到目前为止,我的代码是:

<div ng-model="items">
    <div ng-repeat="item in items">
        <select ng-model="selectedPollNum" ng-change="changedPoll(selectedPollNum)">
            <option ng-repeat="option in items">{{ $index + 1 }}</option>
        </select>
        <label>{{item.name}}</label>
    </div>
</div>

{{$index+1}}
{{item.name}
jsFiddle:


另外,选项以空开头,我想从第一个开始,我想这将是您的要求。如果在
选择
中默认选择一个选项,则很难在其他下拉列表中隐藏默认选择的选项。因此,建议将其留空

控制器:

函数登录控制器($scope){
$scope.arr=[];
$scope.obj={};
$scope.items=[{
名称:“Lorem ipsum dolor sit amet”
}, {
名称:'Concertetur Adipising Elite'
}, {
名称:“Fusce faucibus turpis eget”
}, {
名称:“Sed quis nisl Sed ligula”
}, {
名称:'Nunc ultricies ipsum vitae'
}];
$scope.changedPoll=函数(num,i){
$scope.obj[i]=num;$scope.arr=[]
angular.forEach($scope.obj,函数(值,键){
$scope.arr.push(parseInt($scope.obj[key]))
});
}
}

{{$index+1}}
{{item.name}

这更像是一项(相当广泛的)任务,我不清楚问题是什么?你能分享你到目前为止所拥有的,用你目前的解决方案明确问题吗?是的,对不起。因此,我现在拥有的是JSFIDLE(生成的选择和选项)。我想要实现的是:例如,当我从第一个选择中选择一个数字时,我想从所有其他选择中删除所选的一个…因此我不能选择同一个数字两次。清楚吗?您是否尝试过任何方法来实现它,而不是这些
html
?当ng模型引用的值在传递给ng选项的一组选项中不存在时,将生成空选项。这样做是为了防止意外的模型选择:AngularJS可以看到初始模型未定义或不在选项集中,并且不想自己决定模型值。如果您想去掉空选项,只需在控制器中选择一个初始值。我也找到了一个你想要实现的例子,但是它在JQuery中:谢谢@Matheno,这是一个问题,我相信是较小的问题。你能给出关于选择依赖性的建议吗?那很好!美好的你能把名字改成数字吗?在这种情况下,1,2,3,4,5如果我想在选择后更改其中一个选项,我也不能这样做,因为它已经消失了。