如何在django的模板标签内使用角度表达式?

时间:2013-11-17 21:52:32

标签: django angularjs django-templates

我在tags.py中写了以下标记:

@register.simple_tag
def getUserName(request, user_id):
    return foo(user_id)

在我的html模板中,我将django符号{{}}与角度符号{[{}]}组合在一起 (AngularJS with Django - Conflicting template tags)。 所以我写了这个表达式:

{% getUserName request {[{ angular_conversation.user_id }]} %}

问题是在angularjs解析内部表达式之前的django解析器。 请告诉我如何才能使它有效......

2 个答案:

答案 0 :(得分:2)

你做不到。你必须考虑一个解决方法。从Django 1.5开始,您可以使用{% verbatim %}标记来阻止渲染中的任何内容(包括{{}}符号)。

{% getUserName request {[{ angular_conversation.user_id }]} %}您使用此功能的原因是什么?你不能像{{ request.user.username }}那样做吗?

答案 1 :(得分:1)

更改默认的Django模板分隔符或Angular的插值分隔符(请参阅$interpolateProvider)。

类似的东西:

myApp.config(function($interpolateProvider) {
  $interpolateProvider.startSymbol('//');
  $interpolateProvider.endSymbol('//');
});

允许您在模板中使用“//”,这样可以避免冲突。

//myScopeObject.something//