【问题标题】:Cannot show information from DRF page using AngularJS无法使用 AngularJS 显示来自 DRF 页面的信息
【发布时间】:2015-08-18 07:38:22
【问题描述】:

这是我写的代码:

DRF 页面 [http://localhost:8000/index/info/?format=json]

[{"id": 1, "name": "Michel", "city": "Florida", "country": "United States"}, {"id": 2, "name": "Shuvo", "city": "London", "country": "United Kingdom"}]

2.html [这是我的第二次尝试]

<!DOCTYPE html>

<html>
<script src="angular.min.js"></script>
<script src="2.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
    <ul>
        <li ng-repeat="x in info">
            {{ x.name + ', ' + x.country }}
        </li>
    </ul>
</div>
</body>    
</html>

2.js

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

app.controller('myCtrl', function($scope, $http) {
    $http.get("http://localhost:8000/index/info/?format=json")
    .success(function(response) {
        $scope.info = response;
    });
});

我的 2.html 页面没有显示任何内容。它完全是空白的。我究竟做错了什么? :(

【问题讨论】:

    标签: angularjs django rest controller frameworks


    【解决方案1】:

    我怀疑这与返回的数据格式有关

    $http.get("http://localhost:8000/index/info/?format=json")
    

    当 http.get 运行时,您在控制台中看到了什么?

    这是一个 plunkr,显示它与您的数据一起使用

    http://plnkr.co/edit/x0OtVbsnSMk3mdhRFEkc

    【讨论】:

    • 您在一个名为 data 的变量上拥有整个 JSON 数据。然后您将该变量分配给$scope.info。但我有那个返回 JSON 数据的 URL。我不知道如何将该页面中的 json 放入 $scope.info
    • 某种演示会很有帮助,您是否在控制台中遇到任何错误?我怀疑返回的数据存在问题。您是否也在这里查看过教程:docs.angularjs.org/tutorial/step_05
    • 您确定这也是返回数据的正确格式吗?虽然我从未按照以下方式使用它:django-rest-framework.org/tutorial/quickstart/#testing-our-api 数据将在结果对象中。
    • 有点确定,伙计。抱歉,我无法关注这篇文章。我目前陷入了一些 Django 模板问题。我一完成就会回来。顺便说一句,没有“结果”对象。它只是一个未命名的数组。为了确认,我在 .js 文件 $scope.info = response.results 中分配了结果对象。但没有运气。 :(
    • 我认为最好的起点是检查 http get 请求是否正在发生并确认返回的数据和格式。您可以在 chrome 中使用控制台中的“Log XMLHttpRequests”轻松完成此操作。看到这个输出会非常有用。
    【解决方案2】:

    由于 django 和 angular 使用相同的符号来显示变量,因此您必须使用 verbatim tags 才能使用 {{}} 作为 angular 标签。否则它们将被视为 django 标签。

    【讨论】:

    • 这不是我的问题。我现在什至没有使用 django 模板。只是想用 AngularJS 从 django rest 框架页面读取 JSON 数据。其实我很想像没有名字的数组一样读取上述格式的数据。
    • 您是否在 Scope 变量中获取数据?
    猜你喜欢
    • 2017-07-16
    • 2014-11-10
    • 1970-01-01
    • 2017-05-21
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多