2016-06-30 21 views
0

データベースからのデータを基本的な角度アプリに入力しようとしています。 w3schoolsの場合と同様の例これまでのコードです:レスポンスがビューに表示されない(nodejs、mysql、angularjs)

<div ng-app="myApp" ng-controller="customersCtrl"> 

    <table> 
     <tr ng-repeat="x in names"> 
      <td>{{ x.id }}</td> 
      <td>{{ x.appid }}</td> 
     </tr> 
    </table> 
</div>  

<script> 
    var app = angular.module('myApp', []); 
     app.controller('customersCtrl', function($scope, $http) { 
      $http.get("http://localhost:3000/test") 
      .then(function (response) {$scope.names = response.data.records;}); 
     }); 
</script> 

ただし、データは取得されません。 iはhttp://localhost:3000/testから取得応答は以下の通りである:

[

{ "ID":1、 "APPID":1}、{ "ID":2、 "APPID":1}、{ {"id":20、 "appid":1}、{"id":38、 "appid":1}、{"id":39、 "id":7、 "appid":1} appid ":3}、{" id ":44、" appid ":3}、{" idid: ID ":70、" APPID ":2}、{" ID ":71、" APPID ":2}、{" ID "72"、 "APPID:2}

]

私はブラウザとpostmの両方からチェックしました。上記のレスポンスでresponse.data.recordsを置き換えた場合、テーブルにはレスポンスの値が表示されます。

私は何かをつぶすべきであることを知っていますが、何とか私はそれを逃しています。私の最高の推測は、レスポンスの形式のものです。あなたのサンプル応答がrecordプロパティ内にラップされることなく、単に配列であるので、あなたが

$scope.names = response.data; 

$scope.names = response.data.records; 

を交換する際に、あなたの問題が解決されなければならないあなたの示したデータによると

答えて

2

あなたは直接だけで直接$scope.namesに応答から配列を割り当て、配列を受けているのでrespnse.data

$http.get("http://localhost:3000/test") 
     .then(function (response) {$scope.names = response.data;}); 

から.recordsを削除する必要があります。

+0

偶然のこと、私はただそれを理解しました。とにかく試行錯誤して得たので説明に感謝します。 –

関連する問題