2017-11-28 2 views
0

Ich habe ein Angular 5-Projekt erstellt.ngFür Arbeiten, aber nicht ng-Optionen oder ng-repeat

Ich erstellte meine eigene Komponente und übergeben Sie die Komponenten HTML-Vorlage eine Liste von Personen.

Der folgende Code funktioniert

<ul> 
     <li *ngFor="let x of persons">{{ x.Id }}: {{ x.personName }}</li> 
    </ul> 

Ich brauche es in einer auserwählten zu setzen und nicht einer Liste.

ng-Optionen funktionieren nicht

<select ng-model="selectedPerson" ng-options="x.personName for x in persons"></select> 

ng-Wiederholung nicht

<select><option ng-repeat="x in persons">{{x.personName}}</option></select> 

Sowohl den folgenden Fehler funktioniert gibt im Browser.

ERROR TypeError: Cannot read property 'personName' of undefined

Was mache ich falsch?

+1

Dies kann hilfreich sein - https://angular.io/guide/ajs-quick-reference – Und3rTow

Antwort

1

versuchen wie folgt aus:

in Winkel 5 Verwendung ngFor statt ng-repeat

<select [(ngModel)]="selectedPerson" name="selectedPerson"> 
    <option *ngFor="let x of persons">{{x.personName}}</option> 
</select> 
+0

Das verwendet immer noch ngFor was funktioniert. Ich würde gern ng-options und ng-repeat verwenden – devc2

+0

Sie können nicht 'ng-options' oder 'ng-repeat' in der neuesten Version von eckig verwenden. diese sind nur in eckigen js zu verwenden ... beziehen Sie sich das: https://angular.io/guide/ajs-quick-reference – Chandru

+0

Hi dann ist das die Antwort. Meine Frage war warum hat es nicht funktioniert? Bearbeiten Sie Ihre Antwort mit dem Grund, dass es in Angular 5 nicht unterstützt wird und ich werde es korrekt markieren – devc2

0

Verwenden [(ngModel)] statt ng-model:

<input type="text" class="form-control" id="name" required [(ngModel)]="model.name" name="name" /> 

Bitte überprüfen Sie diese link