Django-Angular CRUD 操作
我正在使用一个叫做 Django-Angular 的自定义库,在我的Django模板中进行基本的增删改查操作。
我在按照 官方文档 的指引,但在我的模板中用Angular JS查询Django对象时遇到了问题——它只是显示了Angular JS模板标签 {{ property.name }},而且我收到了一个Angular JS的 Uncaught object
错误,这个错误指向了angular.js文件(这是它指向的代码块,指向的是第一行)。
根据 这个回答,模块没有正确注入,这就是我需要帮助的地方。
在跟着教程的过程中,我设置了一个Django视图:
class PropertyMapView(NgCRUDView):
model = Property
fields = ['name',]
还添加了一个URL参数:
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
错误。
1 个回答
看起来是因为没有安装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});
现在似乎可以正常工作了!