如何在AngularJS中使用Django对象变量列表?

时间:2016-05-16 13:36:04

标签: javascript python angularjs django syntax-error

所以我有一个来自Django的变量:

[<Topic object>, <Topic object>]

我使用ng-init将其传递给Angular,如下所示:

<div class="profile-navigation" ng-init="ProfileTopics={{ProfileTopics|safe}} ">

我得到了语法分析错误而不是成功。

  

angular.js:12520错误:[$ parse:syntax] http://errors.angularjs.org/1.4.8/ $ parse / syntax?p0 =%3C&amp; p1 = not%20a%20primary%20expression&amp; p2 = 16&amp; p3 = ProfileTopics%3D %5B%3CTopic%3A%20Topic&#34;&#34; bject%3E%2C%20%3CTopic%3A%20Topic%对象%3E%5D&安培; P4 =%3CTopic%3A%20Topic%对象%3E%2C% 20%3CTopic%3A%20Topic%对象%3E%5D       在错误(本机)       在https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:6:416       at Object.s.throwError(https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:210:32)       在Object.s.primary(https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:207:6)       at Object.s.unary(https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:206:174)       在Object.s.multiplicative(https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:205:434)       在Object.s.additive(https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:205:261)       在Object.s.relational(https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:205:96)       at Object.s.equality(https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:204:425)       在Object.s.logicalAND(https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js:204:278

2 个答案:

答案 0 :(得分:1)

你不能只是从Django向Angular发送一个对象。您需要先将其序列化为JSON。

您可以使用Django的内置序列化程序以基本方式执行此操作,但第三方项目Django Rest Framework更易于定制且更易于使用。

答案 1 :(得分:0)

为了加入Angular,我发现this是一个了不起的指南。 要从Django发送它,您可能需要:

  1. 将这些对象转换为dicts
  2. 使用JSONResponse返回数据