我使用名为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}错误。
答案 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});
它似乎现在有用了!