我在这里看到的示例是https://docs.angularjs.org/api/ng/directive/select,它有3个具有相同值的选择,我如何在选项中选择不同的值?
我有这个:
<li ng-repeat="tarea in tareas">
<input type="checkbox" ng-model="tarea.COMPLETADA" ng-change="updTarea(tarea.ID)"/>
<span class="done-{{tarea.COMPLETADA}}" >{{tarea.NAME}} {{tarea.CLASIFICADORES}}</span>
<select ng-model="selectedOpt"
ng-options="clasificador.NAME for clasificador in clasificadores">
</select>
<button class="buttons delete right" ng-click="delTarea(tarea.ID)"> Eliminar</button>
</li>
所以我可以有5,10,15个选项,我想用tarea中的值来选择一个项目。CLASIFICADORES,我试过了
$scope.selectedOpt = $scope.clasificadores[1]
但这会使所有选项具有相同的值,就像示例中那样...
我如何在我的选项中动态地用我的ng-repeat中的每个项目中的值来选择不同的项目?
我用 AJAX 加载数据...
我的问题是用tarea. CLASIFICADORES设置默认选择项。例如,我有一个包含分类器的待办事项列表,我希望ng-options在加载页面时默认选择数据库值分类器
1条答案
按热度按时间mgdq6dx11#
问题是,你对所有的选择都使用了相同的作用域变量。你也可以像下面这样把选择的选项存储在一个数组中:
第一个
在这个例子中,我使用了变量$index,它是由ng-repeat指令设置的,顾名思义,它包含了repeat-loop的当前索引。
更新
我更新了代码片段,以便它为每个选择输入设置默认值。
不同的项现在包含一个带有相应类id的字段。我用
ng-init
初始化选择输入。用这个指令我设置selectedClass[$index]
,它是当前项的选择值。由于我们只有类id作为项的属性,我使用一个过滤器来找到id为(classes|filter:{id: currentItem.class})[0]
的相应类对象要去掉过滤器,您可以将每个项目的类设置为完整的类对象,而不是id。