【发布时间】:2016-05-23 17:42:57
【问题描述】:
我使用 Django Rest Framework 构建了我的 REST api。它的功能和运行良好,但是,当我尝试使用 Angular 工厂调用数据时,它不起作用。我怀疑我遗漏了一些简单的东西,但我无法弄清楚。
在我的 api 中,url
/api/教授/
列出我数据库中的所有教授并以 JSON 格式返回。所以,
/api/professor/(id)/
返回特定教授。
不管怎样,这就是我正在做的,我在 static/js/ 中有这两个文件
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 文件(如控制器和服务)的正确方法是什么。谢谢!
【问题讨论】:
-
在浏览器中打开控制台。然后您应该能够看到
service.js正在引发语法错误。第 3 行可能出现意外标记。首先修复它。
标签: javascript angularjs django rest django-rest-framework