Django-Angular CRUD操作

时间:2014-07-20 16:09:35

标签: javascript python django angularjs

我使用名为Django-Angular的自定义库在我的Django模板中执行基本的CRUD操作。

我正在关注official documentation,但我无法在我的模板中使用Angular JS查询Django对象 - 它只是显示Angular JS模板标记{{property.name}}而我收到的是Angular JS Uncaught object错误,指向angular.js文件(this is the code block that it points to,它指向第1行)。

根据this answer,模块没有正确注入,这就是我需要帮助的地方。

在学习本教程后,我设置了一个Django视图:

class PropertyMapView(NgCRUDView): model = Property fields = ['name',]

添加了一个网址参数:

url(r'^crud/property/?$', PropertyMapView.as_view(), name='property_map_view'), 这是我的模板:

  <body ng-app="myServices">

    {% verbatim %}

    <script type="text/javascript">


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

    myServices.factory('Property', ['$resource', function($resource) {
        return $resource('/crud/property/', {'pk': '@pk'}, {
        });
    }]);



    myServices.controller('myCtrl', ['$scope', 'Property', function ($scope, Property) {
    // Query returns an array of objects, MyModel.objects.all() by default
    $scope.models = Property.query();

    // Getting a single object
    var property = Property.get({pk: 1});

    }]);

    </script>

    <div ng-controller="myCtrl" >
        <h2>Test: {{ property.name }} </h2>
        or
        <h2>Test: {{ property }} </h2>
    </div>

    {% endverbatim %}

顺便说一句,我认为视图本身有效,因为当我查询http://myurl.com/crud/property/时,我在浏览器中收到一些数据:

[{"pk":1,"name":"Pastatas A"},{"pk":4,"name":"hmgbjmnbm"},{"pk":3,"name":"gfghfghfg"},{"pk":5,"name":"sdfsdgsdgsdgasssss"}]

我只是无法设置javascript部分并使其工作 - 正如我所说,它只是显示Angular JS模板标记{{property.name}}而我收到一个Angular JS {{1}错误。

1 个答案:

答案 0 :(得分:2)

似乎ng模块未正确加载,因为它未安装。

<script src="http://code.angularjs.org/1.2.19/angular-resource.js"></script>

我修理了我的控制器。应该写一下:

$scope.property = Property.get({pk: 1});

而不是:

var property = Property.get({pk: 1});

它似乎现在有用了!