Angular.js Wählen Sie mit ngOptions: Beschriften Sie die optgroup

8

Ich habe gerade begonnen, mit Angular.js zu spielen und habe eine Frage zu ngOptions: Kann man die optgroup beschriften?

Nehmen wir 2 Objekte an - Autos und Garagen.

%Vor%

Mit diesem Code habe ich fast das gewünschte Ergebnis:

%Vor%

Ergebnis in der Auswahl:

%Vor%

Aber ich möchte die optgroups wie "Garage 1", "Garage 2", ... oder noch besser den Namen der Garage und nicht nur die garageId anzeigen.

Die angularjs.org Dokumentation für Select sagt nichts über Labels für die optgroup, aber ich hätte gerne um die Gruppe um einen Teil von ngOptions wie group by car.garageId as 'Garage ' + car.garageId oder group by car.garageId as getGarageName(car.garageId) - zu erweitern, was leider nicht funktioniert .

Meine einzige Lösung ist bisher, den Auto-Objekten eine neue Eigenschaft "garageDisplayName" hinzuzufügen und dort den Namen der ID + Garage zu speichern und diesen als Gruppe nach Parameter zu verwenden. Aber ich möchte nicht alle Autos aktualisieren, wenn ein Garagenname geändert wird.

Gibt es eine Möglichkeit, die optgroups mit ngOptions zu versehen, oder sollte ich in diesem Fall ngRepeat verwenden?

    
WebCore IT 12.04.2014, 21:10
quelle

1 Antwort

19

Sie können getGarageName() in group by aufrufen, ohne as ...

zu verwenden %Vor%

Anstatt die Garage-ID in jedem Auto zu speichern, sollten Sie in Erwägung ziehen, einen Verweis auf das Garagenobjekt im Garagen-Array zu speichern. Auf diese Weise können Sie den Namen der Garage ändern und müssen nicht jedes Auto wechseln. Und das group by wird einfach ...

group by car.garage.name

    
Anthony Chu 12.04.2014, 21:44
quelle