我试图在下拉列表中读取选定的选项名称/文本/html,而不是通过 angular.js 读取它的值。这是我的做法,但这会返回值,而不是名称:
在我的 html 中
<select class="SelectCar" ng-model="SelectedCar">
<option ng-repeat="car in cars" value="{{car.Guid}}">
{{car.Name}}
</option>
</select>
在我的 Controller 中
var car = $scope.SelectedCar;
“car”的值将是 car.Guid,但我想返回 car.Name。我无法删除该值的 car.Guid,因为此 Guid 已被我的应用程序中的另一个组件使用。
最佳答案
您需要使用 ng-options 中的“as”。它允许您在存储另一个值的同时显示一个值。看看下面的代码块:
来 self 的 Controller :
$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;
来 self 的 HTML:
<select ng-model="selectedCar" ng-options="car.guid as car.name for car in cars"></select>
<div>
Selected Color: {{selectedCar}}
</div>
这是一个 jsFiddle
关于javascript - ng-model 和下拉列表,获取名称,而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17773580/