2016-04-18 7 views
0

Problem: Ich habe einen Wert, der aus dem Back-End stammt und in der Dropdown-Liste sein muss (Es muss der standardmäßig ausgewählte Wert sein). Das Dropdown-Menü enthält Werte einschließlich dieses Wertes. Aber irgendwie, sogar nach der Angabe dieses Wertes im Scoep, wird es nicht im Frontend angezeigt. Hier ist der Code.
HTMLSo wählen Sie einen beliebigen Wert aus der Liste in AngularJS

<select class="bs-select form-control" ng-model="car.yearOfPurchase " id="year" name="year" required=""> 
     <option ng-repeat="year in years" value="year">{{year}}</option> 
</select> 

JS

$scope.years = []; 

    for (var i = 2002; i <= parseInt(moment().format("YYYY")); i++) { 
     $scope.years.push(i.toString()); 
    } 
    /*Value comign from backend. Mocked in this case.*/ 
    $scope.car = { 
    yearOfPurchase : "2006" 
    }; 
    $scope.year = $scope.car.yearOfPurchase; 

Auch habe ich ein plunker für das gleiche erstellt.

+0

Kannst du deinen Mock bitte so ersetzen, wie es vorher wirklich gemacht wurde? –

+0

Ich habe nicht verstanden mit dem Satz "ersetzen Sie Ihren Schein" ?? –

+0

Sie könnten Ihre Auswahl mit ngOptions erstellen. Dann setze einfach dein ngModel mit einem Wert aus deiner Liste und angle erledigt den Rest. Wie erhält man den Wert aus dem Backend? – ste2425

Antwort

2
<select class="bs-select form-control" ng-model="car.yearOfPurchase" 
    id="year" name="year" required="" 
    ng-options="year for year in years"> 
</select> 

Seien Sie vorsichtig, Sie hatten ein Leerzeichen in Ihrem ng-model.

Ich wechselte zu ng-Optionen anstelle von Option mit ng-Wiederholung.

+0

Danke, das hat funktioniert. Abgesehen von Trailing Space Problem ... Warum funktionierte es nicht mit Options-Tags? Irgendeine Idee. Ich versuche nur, hier etwas zu lernen. –

+0

Das Wertattribut war schlecht. Jede Option Ihrer Auswahl hat den Wert "Jahr" (die Zeichenfolge). Sie können versuchen mit ng-value = "{{Jahr}}". Aber die beste Lösung ist, bei den ng-Optionen zu bleiben. – Walfrat

+0

Danke das hat geholfen. : D –