6

angular.js を介した値ではなく、選択したオプション name/text/html をドロップダウンで読み取ろうとしています。これが私のやり方ですが、これは名前ではなく値を返します:

私のhtmlで

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

私のコントローラーで

var car = $scope.SelectedCar;

"car" の値は car.Guid になりますが、代わりに car.Name を返したいと思います。この Guid はアプリ内の別のコンポーネントで使用されているため、値の car.Guid を削除できません。

4

1 に答える 1

8

ng-options の「as」を使用する必要があります。ある値を表示しながら別の値を保存できます。以下のコードブロックを見てください。

私のコントローラーから:

$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;

私のHTMLから:

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

そして、ここにjsFiddleがあります

于 2013-07-21T15:44:31.607 に答える