带有一对密钥对对象的ng-options

Nic*_*ise 2 javascript angularjs ng-options

我从第三方获得以下数据:

countries: [
    {"US":"United States"},
    {"CA":"Canada"},
    {"AF":"Afghanistan"},
    {"AL":"Albania"},
    {"DZ":"Algeria"},
    {"DS":"American Samoa"},
    .....
];
Run Code Online (Sandbox Code Playgroud)

数据的组织方式不是我怎么做的,但现在我需要在带有ng-options的select中适合所有这些,以便显示的值和选项都是国家的全名

我试过,ng-options="code as name for (code, name) in countries"但我得到一个对象作为我的选择值.

Bus*_*ata 5

在这里工作:... http://plnkr.co/edit/nbWHz8g4Gn0vGuSHM5o0?p=preview

虽然尼古拉斯指出,改造数据可能更好吗?

HTML:

<!DOCTYPE html>
<html ng-app="app">

  <head>
    <script data-require="angular.js@1.2.14" data-semver="1.2.14" src="http://code.angularjs.org/1.2.14/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-controller="AppCtrl">

    <select id="countries" name="countries" ng-model="selectedCountry" 
            ng-options="getKey(country) as country[getKey(country)] for country in countries"></select>

    Selected country: {{selectedCountry}}
  </body>

</html>
Run Code Online (Sandbox Code Playgroud)

JS:

// Code goes here

angular.module('app',[]).controller("AppCtrl", ["$scope", function($scope) {
    $scope.countries = [
    {"US":"United States"},
    {"CA":"Canada"},
    {"AF":"Afghanistan"},
    {"AL":"Albania"},
    {"DZ":"Algeria"},
    {"DS":"American Samoa"}
];

  $scope.getKey = function(country) {
    return Object.keys(country)[0];
  }
  }]);
Run Code Online (Sandbox Code Playgroud)