将ng-repeat转换为ng-option错误

时间:2017-05-18 23:38:16

标签: javascript html angularjs select ng-options

我有以下用于select标签的html代码。

<option ng-repeat="option in AllData" value="{{item.Id}}" ng-selected="data.Symbol==item.Id">{{item.Symbol}}</option>

我想将其转换为ng-options。有人可以对此有所了解。

AllData的值如下。它是一个对象数组。

0:Object
 Id: 1
 Symbol: "GR"
1:Object
 Id: 2
 Symbol: "DR"

我尝试过类似的东西,但没有成功。

ng-options="item as item .Symbol for item in AllData track by item.Id">

2 个答案:

答案 0 :(得分:0)

使用ngOptions时,您还必须将ng-model与初始值select绑定。 请注意,由于您使用了track by item.Id,因此默认值应至少包含属性Id,并且符合项Id属性之一。 参考以下样本:

angular.module("app", [])
  .controller("myCtrl", function($scope) {

    $scope.AllData = [{
      0: Object,
      Id: 1,
      Symbol: "GR"
    }, {
      1: Object,
      Id: 2,
      Symbol: "DR"
    }];

    //$scope.data = $scope.AllData[0];
    $scope.data = {
      0: Object,
      Id: 1,
      Symbol: "GR"
    };
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<div ng-app="app" ng-controller="myCtrl">
  <select ng-model="data" ng-options="item as item.Symbol for item in AllData track by item.Id"></select> {{selectedItem}}
</div>

答案 1 :(得分:0)

试试这个

<select ng-options="option as option.Symbol for option in AllData">
    </select>