Angularjs 从阵列中预选的选项
我挖了几个小时也没找到我想做的事的答案。我正在处理一个包含很多变量的复杂表单,因此我将尝试在这里缩小我的请求:) 我得到了一个基于变量的变量select。所以我用ng重复如下:Angularjs 从阵列中预选的选项,angularjs,Angularjs,我挖了几个小时也没找到我想做的事的答案。我正在处理一个包含很多变量的复杂表单,因此我将尝试在这里缩小我的请求:) 我得到了一个基于变量的变量select。所以我用ng重复如下: <tr ng-repeat="i in numberOfRows track by $index"> <td> <select list.indexOf(selected[$index]) as item for item in list></select>
<tr ng-repeat="i in numberOfRows track by $index">
<td>
<select list.indexOf(selected[$index]) as item for item in list></select>
</td>
</tr>
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
<option label="opt1" value="opt1" selected="selected"></option>
//opt2 removed because it's selected in another select
</select>
</tr></td>
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
//opt1 removed because it's selected in the previous select
<option label="opt2" value="opt2" selected="selected"></option>
</select>
</tr></td>
结果应该是这样的
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
<option label="opt1" value="opt1" selected="selected"></option>
<option label="opt2" value="opt2"></option>
</select>
</tr></td>
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
<option label="opt1" value="opt1"></option>
<option label="opt2" value="opt2" selected="selected"></option>
</select>
</tr></td>
我尝试了很多方法来编写我的ng选项。
我实际拥有的是正确数量的select,每个select中都有一个列表,但是每个select都应该有一个不同的预选变量。它们都在我列表的最后一个值上被选中。不管我怎么努力
ps:我的数组“选定”中的值始终在列表[$index]中。名称
如果有人知道如何做到这一点,我会非常高兴^^
小侧请求:是否可以在列表上进行筛选,通过所有选择删除/隐藏所选选项?
结果如下:
<tr ng-repeat="i in numberOfRows track by $index">
<td>
<select list.indexOf(selected[$index]) as item for item in list></select>
</td>
</tr>
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
<option label="opt1" value="opt1" selected="selected"></option>
//opt2 removed because it's selected in another select
</select>
</tr></td>
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
//opt1 removed because it's selected in the previous select
<option label="opt2" value="opt2" selected="selected"></option>
</select>
</tr></td>
//opt2已删除,因为它是在另一个select中选择的
//opt1已删除,因为它是在上一个选择中选择的
谢谢:)我在第一部分尝试了您现有的解决方案,但我不知道您是如何使这一行代码正常工作的:
<tr ng-repeat="i in numberOfRows track by $index">
您可以:
<tr ng-repeat="i in selected">
<td>
<select ng-model="selectModels[$index]" ng-options="option.name for option in list track by option.id" class="form-control"></select>
{{ selectModels[$index] }}
</td>
</tr>
{{selectModels[$index]}
如果您为每行生成不同的列表
,或者对该行使用禁用选项
,我认为您的附带问题是可能的
这里是工作希望这有帮助。您可以根据自己的请求设置一个新问题。我在第一部分尝试了您现有的解决方案,但我不知道您是如何使这一行代码正常工作的:
<tr ng-repeat="i in numberOfRows track by $index">
您可以:
<tr ng-repeat="i in selected">
<td>
<select ng-model="selectModels[$index]" ng-options="option.name for option in list track by option.id" class="form-control"></select>
{{ selectModels[$index] }}
</td>
</tr>
{{selectModels[$index]}
如果您为每行生成不同的列表
,或者对该行使用禁用选项
,我认为您的附带问题是可能的
这里是工作希望这有帮助。你可以为你的附带请求设置一个新问题。可能是一个输入错误,但你在第一个问题中选择的
之前缺少一个空格value=“opt1”selected=“selected”
只需在我的请求中键入。我的变量是很长的名称。可能是输入错误,但您在第一个变量中选择的之前缺少一个空格value=“opt1”selected=“selected”
只需在我的请求中键入。我的变量是很长的名称。不错,但为什么我们不能在任何选择中选择opt0?我是否必须只使用$scope?因为我的控制器头是这样的。控制器('MyCtrl',函数($scope){var vm=this;});抱歉,我做了一个快速修复,小提琴如果现在工作,只是添加了一些变量并更改了ng选项值。不错,但是为什么我们不能在小提琴中的任何选择中选择opt0?我是否必须只使用$scope?因为我的控制器头是这样的。控制器('MyCtrl',函数($scope){var vm=this;});对不起,我做了一个快速修复,小提琴如果现在工作,只是添加了几个变量和改变ng选项值。