javascript - ng-model 和下拉列表,获取名称,而不是值

标签 javascript html angularjs

我试图在下拉列表中读取选定的选项名称/文本/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/

相关文章:

javascript - vuejs 如果/否则 : check if element exsists else add a element

javascript - Jasmine 中的错误值不相等

javascript - 克隆/复制 html 节点,包括它们的样式

javascript - 从 javascript 函数调用指令中定义的 Controller 中的方法

javascript - Facebook 如何在其网络应用程序关闭时创建推送通知

html - 如何在不使用媒体查询的情况下更改元素的宽度?

jQuery 按跨度对列表进行排序

javascript - PHP ng-click 中的 Angular JS 动态 HTML 不起作用

javascript - 如何根据 SELECT 更改淡出/淡入 View ?

javascript - 根据 D3 的输入获取数据时 Ajax 不工作