从 JSON 文件创建单个 select 下拉菜单

Creating a single select dropdown menu from a JSON file

所以我有这个 json 文件需要处理: http://pastebin.com/6aYkTjsw

我正在尝试为每个版本的链接数组中的每个条目制作 1 个 select 下拉菜单。所以基本上应该为每个版本的 select 下拉菜单添加 2 个条目(一个用于 windows,一个用于 linux)。

但是,我失败了,因为它为每个版本制作了一个 select 元素。我无法在 select 语句中添加另一个 ng-repeat,所以我对如何实现这一点感到有点困惑。我已经对 ng-options 和其他东西进行了修补,但无法让它工作。

这是当前的实现:
http://plnkr.co/edit/TenmOPpXef85KAowXbTx?p=preview

代码: index.html

    <!-- Algorithmic Trading © -->
    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Algorithmic Trading - Revitpo Inc</title>

      <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
      <script src="app.js"></script>
    </head>
    <body ng-app="appDownload">
     <div ng-controller="VersionController">
     <!-- Drop Down Menu -->
     <div ng-repeat="x in deployments">
     <select>
     <option ng-repeat="y in x.links" value="{{y.link}}">{{x.short_descr}} ({{y.os}})</option>
     </select>
     </div>
     </div>

    <tt>Copyright © 2015. Revitpo Inc. All Rights Reserved.</tt>
    </body>
    </html>

app.js

    var app = angular.module("appDownload", []);

    app.controller("VersionController", function($scope, $http) {
      $http.get('http://algorithmictrading.azurewebsites.net/json/versions.json').
        success(function(data, status, headers, config) {
          $scope.deployments = data;
        });
    });

我解决了我的问题。 (实际上 #angularjs 中来自 freenode irc 的 icebox 为我解决了它)。

这是我最终使用的:

index.html

<!-- Algorithmic Trading © -->
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Algorithmic Trading - Revitpo Inc</title>

  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
  <script src="app.js"></script>
</head>
<body ng-app="appDownload">
 <div ng-controller="VersionController">
 <!-- Drop Down Menu -->
 <select>
 <option ng-repeat="deployment in deployments" value="{{deployment.link}}">{{deployment.short_descr}} ({{deployment.os}})</option>
 </select>
 </div>

<tt>Copyright © 2015. Revitpo Inc. All Rights Reserved.</tt>
</body>
</html>

app.js

var app = angular.module("appDownload", []);

app.controller("VersionController", function($scope, $http) {

  $scope.deployments = [];

  //Retrieve all build versions
  $http.get('json/versions.json').
  success(function(data, status, headers, config) {
    //Push required fields onto array
    data.forEach(function(item1) {
      item1.links.forEach(function(item2) {
        $scope.deployments.push({
          short_descr: item1.short_descr,
          link: item2.link,
          os: item2.os
        });
      });
    })
  });

});