获取选择列表角度js中所选选项的选项文本

时间:2017-03-30 07:59:42

标签: javascript angularjs

我的选择列表数据如下所示

{
  123: 'abc',
  234: 'bcd',
  .
  .
}

我在模板中使用ng-options来渲染这个

<select ng-model="myOption" ng-option="key as value for (key, value) in data"></select>

现在我想获取js controller

中所选选项的选项文本

有可能吗?

PS-我无法更改选择列表的数据数据结构, 所以使它成为对象的对象,如下所示是不可能的

{
 {
   name: 'abc',
   value: 123
 },
 {
   name: 'bcd',
   value: 234
 }
}

编辑:我仍然希望能够访问所选择的密钥,即123或234

1 个答案:

答案 0 :(得分:1)

您可以使用ng-change并实现一个函数来按键获取值

<div>
    <select ng-model="myOption" ng-options="key as value for (key, value) in data" ng-change="getVal(myOption)"></select>

    {{selectVal}}
</div>

$scope.getVal = function(val){
    $scope.selectVal = $scope.data[val]
}

不是ng-options s

演示

&#13;
&#13;
angular.module("app",[])
.controller("ctrl",function($scope){
$scope.data = {
  123: 'abc',
  234: 'bcd', 
}
$scope.getVal = function(val){
    $scope.selectVal = $scope.data[val]
}
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
 <select ng-model="myOption" ng-options="key as value for (key, value) in data" ng-change="getVal(myOption)"></select>
{{selectVal}}
</div>
&#13;
&#13;
&#13;