2014-07-20 94 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});

看來,現在的工作!