javascript - 在选择列表angular js中获取所选选项的选项文本

标签 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
 }
}

编辑:我仍然希望能够访问选定的 key ,即 123 或 234

最佳答案

你可以使用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-optionss

演示

angular.module("app",[])
.controller("ctrl",function($scope){
$scope.data = {
  123: 'abc',
  234: 'bcd', 
}
$scope.getVal = function(val){
    $scope.selectVal = $scope.data[val]
}
})
<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>

关于javascript - 在选择列表angular js中获取所选选项的选项文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43111823/

相关文章:

javascript - 获取渲染元素的组件

javascript - 根据时间延迟刷新单个div

javascript - 在 JS 中创建二进制 blob

javascript - AngularJS 在同一 View 中使用两个 Controller

javascript - 无法绑定(bind)来自 AngularJS 工厂的数据

javascript - 看不到选项并且无法选择

javascript - 我怎样才能运行一个字符串,就像它在 javascript 代码中一样?

javascript - 如果 Angular 模型中没有数据则显示消息

json - 在 Ng-Table 上加载 JSON 数据后分页不起作用

angularjs - Protractor 使用的输出插件