NodeJS rest api with mysql无法迭代输出格式

时间:2016-03-24 21:02:37

标签: mysql angularjs node.js rest angularjs-http

伙计们我遵循了关于如何使用node + express + mysql实现rest api的教程,这里是我的代码REST.js文件中的路由:

sampleApp.controller('InstallController', function($scope, $http) {
    $http.get('http://localhost:3000/api/companies').
            success(function (data) {
                $scope.clients = data;
            });
}

这就是我用angular调用它们的方式:

  <option ng-repeat="client in clients">{{client}}</option>

和html

    {
  "Companies": [
    {
      "id": 1,
      "name": "GOLF"
    },
    {
      "id": 2,
      "name": "RENAULT"
    },
    {
      "id": 3,
      "name": "AUDI"
    },
    {
      "id": 4,
      "name": "MAZDA"
    }
  ]
}

这是我得到的答案:

System.config({
       packages: {        
          app: {
            format: 'register',
            defaultExtension: 'js'
          }
        }
      });
System.import('app/main')
     .then(null, console.error.bind(console));

我的目标是迭代结果以使用名称填充选择标记。请跟我说,我开始吧。谢谢:))

2 个答案:

答案 0 :(得分:1)

您应该在下面使用,但是当您选择任何值时,id内只能有selectedClient值。

<select ng-model="selectedClient">
    <option value="client.id" ng-repeat="client in clients.Companies">
      {{client.name}}
    </option>
</select>

更好的选择是在ng-options下拉列表中使用select指令,因此您可以在此处选择对象而不是原始值。就像选择{"id": 1, "name": "GOLF" }选项时会有GOLF个对象一样,ng-repeat的重复选项是否有限制选择原始类型值。

<select ng-model="selectedClient" ng-options="client.name for client in clients.Companies"></select>

答案 1 :(得分:1)

看起来你把所有东西都正确地连接在一起你只需要更改$ scope.clients的赋值。

$scope.clients = data.Companies;

然后在你的HTML

<option value="{{client.id}}" ng-repeat="client in clients"> 
   {{client.name}}
</option>