angularjs 在Angular 的多个选项中动态默认选定项目

amrnrhlw  于 2022-10-31  发布在  Angular
关注(0)|答案(1)|浏览(166)

我在这里看到的示例是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在加载页面时默认选择数据库值分类器

mgdq6dx1

mgdq6dx11#

问题是,你对所有的选择都使用了相同的作用域变量。你也可以像下面这样把选择的选项存储在一个数组中:
第一个
在这个例子中,我使用了变量$index,它是由ng-repeat指令设置的,顾名思义,它包含了repeat-loop的当前索引。

更新

我更新了代码片段,以便它为每个选择输入设置默认值。
不同的项现在包含一个带有相应类id的字段。我用ng-init初始化选择输入。用这个指令我设置selectedClass[$index],它是当前项的选择值。由于我们只有类id作为项的属性,我使用一个过滤器来找到id为(classes|filter:{id: currentItem.class})[0]的相应类对象
要去掉过滤器,您可以将每个项目的类设置为完整的类对象,而不是id。

相关问题