Grundsätzlich versuche ich, ein Auswahlfeld zu füllen, aber Werte aus first_name
Spalte und last_name
Spalte zu verketten .
Was ich tun möchte (funktioniert 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>
angularjs
angularjs-ng-options
PatrickCurl
quelle
quelle
s.subsidiary.sid._value_ as s.subsidiary.subsidiary_no._value_ + ' :' + s.subsidiary.subsidiary_name._value_ for s in subsidiaries
. Der einzige Unterschied, den ich sehen kann, ist, dass ich keine Klammern verwendet habe. Versuchen Sie, sie zu entfernen und prüfen Sie, ob es funktioniert.Antworten:
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>
quelle
'b.id as (b.first_name + b.last_name) for b in buyers'
hat perfekt funktioniert.Mit dieser Synthax können Sie eine Zeichenfolge verketten:
ng-options="i.x + ' ' + i.y for i in items"
Das folgende Snippet verkettet
firstname
undlastname
: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 keine Klammern erforderlich sind , die Lesbarkeit jedoch verbessert werden kann .
quelle