2016-04-11 5 views
2

In meinen ng-Wiederholungen bekomme ich Fehler:Erwartete Ausdruck in Form von ‚_item_ in _collection_ [Spur von _ID_]‘ bekam aber ‚‘

"Error: [ngRepeat:iexp] Expected expression in form of 'item in collection[ track by id]' but got ''.

Auch wenn dieser Fehler Anwendung erscheint nicht gebrochen ist und funktioniert einfach gut, aber niemand mag große Fehler in ihrer Konsole. Was könnte es verursachen? Wie repariere ich es?

Ich habe diesen ng-repeat Code aus meiner Sicht:

<div class="input-dual" ng-controller="DateCtrl"> 
    <div class="input-dual-inner"> 
     <span>Datum polaska:</span> 
     <select> 
     <option>-</option> 
     <option ng-repeat="year in years">{{year}}</option> 
     </select> 
    </div> 
    <div class="input-dual-inner"> 
     <select> 
     <option>-</option> 
     <option ng-repeat="month in months">{{month.name}}</option> 
     </select> 
    </div> 
    </div> 

und dies ist der Controller für sie:

AppControllers.controller('DateCtrl', [ 
    '$scope','$http', 
    function($scope, $http){ 
    $http.get('/dates').then(function(response){ 
     $scope.years = response.data.years 
     $scope.months = [] 
     for (var i = 0; i < 12; i++) { 
     $scope.months.push(response.data.months[i]) 
     } 
    }) 
    } 
]); 

Dies ist, wie JSON-Datei wie folgt aussieht:

{"years":[2016,2017],"months":[{"no":"01","name":"Siječanj"},{"no":"02","name":"Veljača"},{"no":"03","name":"Ožujak"},{"no":"04","name":"Travanj"},{"no":"05","name":"Svibanj"},{"no":"06","name":"Lipanj"},{"no":"07","name":"Srpanj"},{"no":"08","name":"Kolovoz"},{"no":"09","name":"Rujan"},{"no":"10","name":"Listopad"},{"no":"11","name":"Studeni"},{"no":"12","name":"Prosinac"}]} 

Antwort

2

fügen Sie eine model zu der select hinzu, genau wie ich selectedYear und 0 hinzugefügt habe

<select ng-model='selectedYear' ng-options='year as year for year in years'> 
</select> 
<select ng-model='selectedMonth' ng-options='month as month.name for month in 
months'></select> 

und in *.js Datei oder unter scripts Tag initialize sie wie (mit Standardwert): -

$scope.selectedYear = $scope.years[0]; 
    $scope.selectedMonth = $scope.months[0]; 
+0

Einfach nur neugierig - was in 'Jahr der Punkt des ersten' Jahres als year' ist wie Jahr für Jahr in Jahren? – Mawg

+1

nur ein 'syntatic-Zucker', könnte es alles sein, wählte ich den gleichen Namen für Einfachheit (wenn die Eigenschaft, wenn komplex) – manish

+0

Ja, aber X als X? Warum die Mühe? Kannst du nicht einfach "Jahr für Jahr" oder musst du ein "X wie Y" haben? – Mawg

Verwandte Themen