Javascript 角度1.x ng选项从值加载下拉列表

Javascript 角度1.x ng选项从值加载下拉列表,javascript,angularjs,Javascript,Angularjs,这是我的plunker,我的html是这样的 <select ng-model="dropdown" ng-options="option.description for option in list" ng-change="hmm()"></select> $scope.list = {"description":"jhello","value":4},"description":"bello","value":5}]; $scope.dropdown = 5;

这是我的plunker,我的html是这样的

<select ng-model="dropdown" ng-options="option.description for option in list" ng-change="hmm()"></select>
$scope.list =   {"description":"jhello","value":4},"description":"bello","value":5}];
$scope.dropdown = 5;
我有一个
ng model=“dropdown”


我要做的是将模型的值设置为所选选项。因此,如果我将dropdown设置为5,那么将选择
$scope.list[1]
。我知道我可以很容易地调用索引,因此
$scope.dropdown=$scope.list[1]
等。但是,当我从数据库中拉出数据进行编辑以映射到此选项时,这需要额外的映射。然后进行额外的映射,以便在尝试保存时仅将5值存储到数据库中(即valueToSave=$scope.dropdown.value)。如果我的模型或值能够自动设置正确的选项并自动准备好保存,那就太好了。当你有30个左右的下拉列表,有人点击编辑额外的映射来设置下拉列表并再次保存时,这真是累加。如何使用
$scope.dropdown=5
设置下拉选项,并确保将下拉更新
$scope.dropdown
更改为正确的值,以便保存?

只需按如下方式更新ng选项
ng options=“option.value as option.description for option in list”

像这样

<select class="dropdown-list form-control" name="UnitsOfLengthDefault" ng-model="dropdown" ng-options="option.value as option.description for option in list" ng-change="hmm()"></select>

我认为映射是最好的方法

使用此功能,您可以轻松找到并分配正确的值

function findIndexInData(data, property, value) {
  var result = -1;
  data.some(function (item, i) {
    if (item[property] === value) {
      result = i;
      return true;
    }
  });
  return result;
}
所以你可以用这个:

$scope.list[ findIndexInData( $scope.list, 'value', 5 ) ];