2016-02-12 18 views
0

我使用Django Rest Framework構建了我的REST api。它的功能很好,但是,當我嘗試使用Angular工廠調用數據時,它不起作用。我懷疑我缺少一些簡單的東西,但我無法弄清楚。爲什麼不使用AngularJs因子從我的REST API調用數據?

在我的API,網址

/API /教授/

列出我的數據庫中的所有教授和回報爲JSON。所以,

/API /教授/(ID)/

在特定教授的回報。

總之,這裏的我在做什麼,我在靜態/ JS這2個文件/

app.js

var app; 

app = angular.module('myApp', ['myApp.services',]); 

app.controller('AppController', [ 
    '$scope', 'Professor', function($scope, Professor) { 
    return $scope.professors = Professor.query(); 
    } 
]); 

services.js

angular.module('myApp.services', ['ngResource']); 

.factory('Professor', [ 
    '$resource', function($resource) { 
    return $resource('/api/professors/:id', { 
     id: '@id' 
    }); 
    } 
]); 

我的index.html看起來像這樣

{% load staticfiles %} 
<!DOCTYPE html> 
<html> 
<head> 
    <!-- AngularJs --> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script> 
    <script src="{% static "js/app.js" %}"></script> 
    <title></title> 
</head> 
<body ng-app="myApp"> 
    <div ng-controller="AppController"> 
     {% verbatim %} 
      <div ng-repeat="professor in professors"> 
       <h3>{{professor.name}} - {{professor.name_code}}</h3> 
       <p>{{professor.university}} - {{professor.department}}</p> 
      </div> 
     {% endverbatim %} 
    </div> 
</body> 
</html> 

在瀏覽器中,代碼顯示出來,即{{professor.name}}而不是教授的實際名稱。任何想法如何做到這一點的權利?

另外,任何人都可以告訴我什麼是模塊化angularJs文件,如控制器和服務的正確方法。謝謝!

+0

在瀏覽器中打開控制檯。然後你應該能夠看到'service.js'正在拋出一個語法錯誤。可能意外的令牌在第3行。首先修復。 – georgeawg

回答

0

好吧,除了georgeawg指出的語法錯誤外,問題在於ngResource模塊沒有安裝。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-resource.js"></script>添加到我的模板中解決了問題。

相關問題