html - 将动态 id 添加到 ng-options 中的选项

标签 html angularjs select ng-options

是否可以添加动态属性idoption ,当我使用ng-options时在 select循环我的列表并生成我的下拉列表?如果我使用ng-repeat,它就可以工作。循环,因为我可以在那里放置属性 id直接在 option$index 标记增量。 ng-options 也可以吗? ?这是我的代码:

angular.module("myApp", []).controller("myController", function($scope) {
  $scope.selectedOption1;
  $scope.selectedOption2;

  $scope.myList = [{
    text: "1"
  }, {
    text: "2"
  }, {
    text: "3"
  }, {
    text: "4"
  }, {
    text: "5"
  }, ];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myController">
  <!--BUILD DROPDOWN WITH NG-OPTIONS LOOP-->
  <select ng-model="selectedOption" ng-options="option as option.text for option in myList"></select>

  <!--BUILD DROPDOWN AND SET ATTRIBUT ID WITH NG-REPEAT LOOP-->
  <select ng-model="selectedOption2">
    <option id="option_{{$index}}" ng-repeat="option in myList">{{option.text}}</option>
  </select>
</div>

两者的屏幕截图 select (红色边框是 ID):

enter image description here

有什么想法吗?谢谢。

最佳答案

您可以使用跟踪选项:

<select ng-model="selectedOption" ng-options="obj.text for obj in myList track by obj.value">

但是,你必须稍微修改一下你的对象:

$scope.myList = [{
    text: "1",
    value: "option_1"
}, {
    text: "2",
    value: "option_2"
}, {
    text: "3",
    value: "option_3"
}, {
    text: "4",
    value: "option_4"
}, {
    text: "5",
    value: "option_5"
}, ];

这应该可以解决问题。

编辑 The plunker to test it

编辑2对于那些想要快速回答的人,您也可以这样做:

<select ng-model="selectedOption" ng-options="obj.text for obj in myList track by option + obj.text">

并在js文件中添加:

$scope.option = 'option_';
$scope.myList = [{
    text: "1"
}, {
    text: "2"
}, {
    text: "3"
}, {
    text: "4"
}, {
    text: "5"
}, ];

关于html - 将动态 id 添加到 ng-options 中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40649666/

相关文章:

html - 如何使用 css 防止按钮收缩小于非环绕文本?

JQuery 函数似乎需要刷新 "back"按钮

html - 无法定位 xlink :href using attribute selectors

javascript - 在创建 Angular 1 应用程序时,我应该牢记哪些 Angular 2 方面?

php - 一个查询中的多个数学值

php - 是否可以在加载时发送 AJAX 请求?

html - 如何/在何处将数据存储在客户端的 HTML 上

javascript - Angularjs - 多个 API 调用的正确方法是什么

javascript - 学习JavaScript和AngularJS的最有效方法是什么?

sql - 选择有序 SQL 表中某一行之后的所有内容