AngularJS ng-Optionen mit mehreren Feldern

Lesezeit: 2 Minuten

Ich habe eine Sammlung von Objekten mit Benutzerinformationen.

"Id": "1",
"Firstname": "ABCDEF",
"Lastname": "GHIJK",
"Middlename": ""

In meinen Auswahloptionen möchte ich zwei Felder anzeigen – Firstname Lastname. Ich verstehe nicht, wie man das macht und wie man es bindet ng-model.

Benutzer-Avatar
Maxenz

Sie können dies versuchen:

<select 
  name="users" 
  ng-model="selectedUser" 
  ng-options="user.Id as user.Firstname + ' ' + user.Lastname for user in users">
</select>

Weitere Informationen in der Dokumentation: https://docs.angularjs.org/api/ng/directive/select

  • Können wir auch mehrere Werte hinzufügen, wenn selectedUser ein Objekt im Modell ist, wie ich `s selectedUser.Firstname als user.firstname und selectedUser.Lastname als user.lastname möchte, können wir das in ng-options tun?

    – NeverGiveUp161

    16. März 2018 um 10:20 Uhr

  • Ich empfehle, einen Filter zu erstellen. Verwenden Sie es wie folgt: ng-options=”user.Id as (user | userFullName) for user in users”

    – Axar

    23. August 2018 um 19:43 Uhr

Betrachten Sie das Format Ihres Array-Objekts als dieses.

$scope.userInfo = [
                    {"Id": "1", "Firstname": "ACDEF", "Lastname": "GHIJK", "Middlename": ""},
                    {"Id": "2", "Firstname": "BADEF", "Lastname": "HIGJK", "Middlename": ""},
                    {"Id": "3", "Firstname": "CDBEF", "Lastname": "IIHJK", "Middlename": ""},
                ]

Sie können zwei Felder wie dieses anzeigen und wie unten gezeigt an das Modell binden.

<select ng-model="userInfo" ng-options="s.Firstname +' '+ s.Lastname for s in userInfo" class="span2"> </select> 

Nur ein zusätzliches Update,

Ich musste den in Klammern eingeschlossenen Nachnamen anzeigen, also habe ich die Antwort so geändert und zum Laufen gebracht.

<select 
   name="users" 
   ng-model="selectedUser" 
   ng-options="user.Id as user.Firstname + ' (' + user.Lastname + ') ' for user in users">
</select>

Es gibt immer ein Non ng-options Szenario, in dem Sie zwei Parameter aus der binden können ng-repeat Artikel:

  <select name="user" ng-model="vm.asignedUser">
    <option value="">Select user</option> 
    <option value="{{ {'name':user.name, 'id': user.id} }}" ng-repeat="user in vm.users">
      {{ user.nombreLargo }}
    </option>
  </select>

Das hat bei mir funktioniert:

<select ng-model="color" ng-options="(c.name+' '+c.shade) for c in colors"></select>

Quelle: https://groups.google.com/d/msg/angular/ljJd5x1Tgrk/bZuVWCA1hO4J

1226580cookie-checkAngularJS ng-Optionen mit mehreren Feldern

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy