2014-07-20 135 views
1

我正在使用名为Django-Angular的定制库在我的Django模板中执行基本的CRUD操作。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,它指向第一行)。

根据this answer,该模块没有正确注入,这就是我需要一些帮助。

当教程下面我已成立了一个Django视图:

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

加入URLparameter:

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 Uncaught object错误。

回答

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});

看来,现在的工作!