如何在角度ng-options中设置自定义对象值?

时间:2014-11-14 11:09:26

标签: angularjs select ng-options

我有一个数组opts,其中包含<select>元素的不同选项。数组的对象有一个属性text用于显示,一个属性value用于获取值并在变量$scope.opt2中设置。

控制器:

function MyCtrl($scope) {
    $scope.opts = [
        {value: 10, text: '1st' },
        {value: 20, text: '2nd' }
    ];
}

我想要设置:

  • $scope.opt2 = {ref: 10}并在选择第一个选项时显示1st
  • $scope.opt2 = {ref: 20}并在选择第二个选项时显示2nd

我试过了:

<select ng-model="opt2" ng-options="{ref: obj.value} as obj.text for obj in opts">

值设置正确但text未显示。任何解决方案?

测试示例:http://codepen.io/ces/pen/azbLzX

1 个答案:

答案 0 :(得分:2)

虽然菲利普斯的回复会起作用,但是比你需要它更复杂一点,把你的选择更改为:

<select ng-model="opt2.ref" ng-options="obj.value as obj.text for obj in opts">

在此处查看已编辑的代码集:http://codepen.io/anon/pen/XJWeVQ