2013-07-21 8 views
5

Próbuję odczytać nazwę wybranej opcji/text/html w menu rozwijanym, w przeciwieństwie do jego wartości poprzez angular.js. Oto jak to zrobić, ale ta zwraca wartość, a nie nazwa:ng-model i dropdown, get name, not value

W moim html

<select class="SelectCar" ng-model="SelectedCar"> 
    <option ng-repeat="car in cars" value="{{car.Guid}}"> 
     {{car.Name}} 
    </option> 
</select> 

W moim kontroler

var car = $scope.SelectedCar; 

Wartość „samochód” będzie car.Guid, ale chciałbym zwrócić samochód. Zamiast tego. Nie mogę usunąć samochodu. Zapłacił za wartość, ponieważ ten Guid jest używany przez inny składnik w mojej aplikacji.

+0

http: //docs.angularjs .org/api/ng.directive: wybierz –

Odpowiedz

8

Musisz użyć "as" z ng-options. Pozwala wyświetlić jedną wartość podczas zapisywania innej. Spójrz na bloku kodu poniżej:

Z mojego kontrolera:

$scope.cars = [ 
    {name:'Nissan', guid:'1-9'}, 
    {name:'Toyota', guid:'1-23'}, 
    {name:'Ford', guid:'8-43'}, 
    {name:'Honda', guid:'2-6'}, 
    {name:'Datsun', guid:'1-55'} 
]; 
$scope.selectedCar = $scope.cars[1].guid; 

Z mojego HTML:

<select ng-model="selectedCar" ng-options="car.guid as car.name for car in cars"></select> 
<div> 
    Selected Color: {{selectedCar}} 
</div> 

A oto jsFiddle

Powiązane problemy