【问题标题】:Why isn't data being called from my REST api using an AngularJs factor?为什么不使用 AngularJs 因子从我的 REST api 调用数据?
【发布时间】: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


【解决方案1】:

好吧,除了georgeawg指出的语法错误之外,问题是没有安装ngResource模块。

&lt;script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-resource.js"&gt;&lt;/script&gt; 添加到我的模板可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2022-09-23
    • 2022-09-23
    • 1970-01-01
    • 2017-05-24
    • 2016-10-09
    • 1970-01-01
    相关资源
    最近更新 更多