0

I am trying to populate a drop-down list with one value from a returned JSON object.

I am getting an error:

Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: issue in $ctrl.series track by issue.IssueID, Duplicate key: undefined, Duplicate value: {"id":2,"name":"#2"}

My get request returns json objects where by I only want to populate the drop down with the seriesNumber from that object:

 $ctrl.series = [];

            $ctrl.populateSeriesNumber = function () {

                $http.get("../api/issues/issueSeries")
                    .then(function(response) {
                        $ctrl.series = response.SeriesNumber;

                        }
                    );
            }



     <select class="form-control" name="series" id="series" ng-model="$ctrl.selectedSeries" required ng-click="$ctrl.populateSeriesNumber()">
                            <option ng-repeat="issue in $ctrl.series track by issue.IssueID" value="{{issue.SeriesNumber}}">{{issue.SeriesNumber}}</option>
                        </select>
Moses Davidowitz
  • 982
  • 11
  • 28
SEED
  • 57
  • 1
  • 12
  • 1
    possible duplicate with http://stackoverflow.com/questions/16296670/angular-ng-repeat-error-duplicates-in-a-repeater-are-not-allowed – digit Feb 16 '17 at 16:27

1 Answers1

0

change

<option ng-repeat="issue in $ctrl.series track by issue.IssueID" value="{{issue.SeriesNumber}}">{{issue.SeriesNumber}}</option>

to

<option ng-repeat="issue in $ctrl.series track by $index" value="{{issue.SeriesNumber}}">{{issue.SeriesNumber}}</option>
Saurabh Agrawal
  • 7,581
  • 2
  • 27
  • 51