wake-up-neo.net

Ist es möglich, Werte in Angular ng-options zu verketten?

Grundsätzlich versuche ich, ein Auswahlfeld auszufüllen, aber Werte aus dem first_name Spalte und last_name Säule.

Was ich machen will (geht nicht):

<select ng-model="buyers" ng-options="b.id as (b.first_name + " " + b.last_name) for b in buyers"></select>

Was funktioniert:

<select ng-model="buyers" ng-options="b.id as b.first_name for b in buyers"></select>
71
PatrickCurl

Die Zitate sind wichtig. Es funktioniert nicht mit doppelten Anführungszeichen in doppelten Anführungszeichen oder einfachen Anführungszeichen in einfachen Anführungszeichen.

Was funktioniert:

<select ng-model="buyers" ng-options='b.id as (b.first_name + " " + b.last_name) for b in buyers'></select>
130
boatcoder

Sie können eine Zeichenfolge mit folgender Synthax verketten:

ng-options="i.x + ' ' + i.y for i in items"

Das folgende Snippet verkettet firstname und lastname:

angular.module('myApp', []);

function MyCtrl($scope) {
  $scope.names = [{firstname: 'Jon', lastname: 'Snow'},
                  {firstname: 'Rob', lastname: 'Stark'},
                  {firstname: 'Ned', lastname: 'Stark'}];
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="MyCtrl">
  <select ng-model="selected" ng-options="n.firstname + ' ' + n.lastname for n in names"></select>
  selected: {{selected}}
</div>

Beachten Sie, dass Klammern nicht erforderlich sind, aber es kann Lesbarkeit verbessern.

4
Mistalis