2016-06-25 7 views
0

Django REST APIからデータを取得するAngular JSでアプリケーションを構築しようとしています。
Angular JSでデータを取得しない

私はこのスクリプト

var userListApp = angular.module('userListApp', ['ngResource']); 

userListApp.factory('Classroom', function($resource) { 
     return $resource('/classrooms/:id/', 
     {'query': {method: 'GET', isArray:false}} 
    ); 
    }); 

userListApp.controller('UsersController', function($scope, Classroom) { 
    Classroom.query(function(data) { 
    $scope.classrooms = data; 
    }); 
}); 

を持っており、これはHTML

<div ng-app="userListApp"> 
    <div ng-controller="UsersController"> 
     <table class="table table-striped"> 
      <thead> 
       <tr> 
        <th>Classroom</th> 
        <th>School</th> 
        <th>Academic year</th> 
       </tr> 
      </thead> 
      <tbody> 
       <tr ng-repeat="classroom in classrooms"> 
        <td>{{classroom.classroom}}</td> 
        <td>{{classroom.school}}</td> 
        <td>{{classroom.academic_year}}</td> 
       </tr> 
      </tbody> 
     </table> 
    </div> 
</div> 

あるしかし、私は、コンソールに

Error: $resource:badcfg
Response does not match configured parameter
Error in resource configuration for action query . Expected response to contain an array but got an object (Request: GET /classrooms)

from the error reference page of Angular JS

をこのエラーを取得しています

私はここにStackOverflow上のいくつかの回答を見て、そしてthis oneに来た、と私は彼らが

userListApp.factory('Classroom', function($resource) { 
     return $resource('/classrooms/:id/', 
     {method: 'classrooms', id: '*'}, 
     {'query': {method: 'GET', isArray:false}} 
    ); 
    }); 

そして、私はどちらかのエラー、ないデータを取得していないよ言うことを行うことを試みました。

私はこれを入れてみました:それは何か「キャッチ」にしようとしているかのようにWebページ上のいくつかのテーブルは、ここではUPDATEが01​​


スクリーンショット

です、しかし、があります代わりに、この

のライン

return $resource('/classrooms/?format=json', 

角アプリの

、およびデータはありません、しかし、私は、ネットワーク上の開発ツールに行けば - > XHR私はデータがないことを、言ったように、私は、

[{"school":{"id":1,"school_name":"IPSIA F. Lampertico","address":"Viale Giangiorgio Trissino, 30","city":"Vicenza"},"academic_year":"2015/2016","classroom":"1^A","floor":0,"students":[{"classroom":1,"first_name":"Stefano","last_name":"Rossi","gender":"M","birthday":"1998-06-22"},{"classroom":1,"first_name":"Luca","last_name":"Possanzini","gender":"M","birthday":"1999-11-22"}] 

JSONデータを取得しますが、 htmlの表に示されています。


UPDATE 2:「?フォーマット= JSONを "」

リソースURLに追加した後、私は私のデータに私は3つの教室を持っている(行の正確な量を取得するので、私は3行を取得HTML表の中に)、データは入っていません。


UPDATE 3:

私はコンソールログ

enter image description here

+0

まあ、スクリーンショットは、あなたがデータを持っていないことを示しています。それらは空です。つまり、あなたが持っているものには、教室、学校、学術の年という名前のフィールドはありません。あなたのブラウザのdevツールを開き、あなたが実際に得たものを見てください。 –

答えて

0
に、

userListApp.controller('UsersController', function($scope, Classroom) { 
    Classroom.query(function(data) { 
    $scope.classrooms = data; 
    console.log(data); <--- NEW LINE FOR THE DEBUG 
    }); 
}); 

、今は私がこれを取得コードをデバッグするために、この行を追加しました

あなたのdataはcにありません正しい形式。投稿したデータの最後に}]がありません。サーバーの応答を再確認してください。

私は自分のマシンでシナリオ全体を複製し、コードは正常に動作しました。

HTML:あなたと同じです。

スクリプト:

var userListApp = angular.module('userListApp', ['ngResource']); 

userListApp.factory('Classroom', function($resource) { 
     return $resource('http://localhost:9000/classrooms/1', //changed this line only. 
     {'query': {method: 'GET', isArray:false}} 
    ); 
    }); 

userListApp.controller('UsersController', function($scope, Classroom) { 
    Classroom.query(function(data) { 
    $scope.classrooms = data; 
    }); 
}); 

http://localhost:9000/classrooms/1戻りますが、末尾に追加}]で指定されたデータだけ。

OUTPUT:あなたのテーブルに多数の行を持っているので

enter image description here

+0

私は実際に3つの "教室"を持っているので、あなたは正しいです、私はそれをコピー貼り付けて、最後の "}]を置くのを忘れましたが、私は最初のものだけをコピーしました。とにかく、Jsonコードは正しいです(私はhttps://jsonformatter.curiousconcept.com/でそれを検証しました)が、とにかくデータを視覚化することはできません。奇妙なことは、行の正確な量(3つ)がわかりますが、データはありません。 –

+0

'$ scope.classrooms'にはデータが含まれていますか?その時点でデバッグしましたか?あなたのCSSをチェックしてください。たぶんあなたのテキストはあなたの背景と同じ色ですか?そして、ソースにテキストがあるかどうかを確認します。 – prashkr

+0

ソースファイルはこれに似ていますか? [source](http://i.imgur.com/kLvEOFC.png) – prashkr

関連する問題