Django-Angular的djng_rmi模板标签不会展开

时间:2015-05-11 15:28:39

标签: angularjs django django-templates djangular

我正在尝试使用Django-AngulardjangoRMIProvider来提供位于django顶部的角度应用程序访问某些django方法。

我复制的代码段(并自定义了my_app名称),并添加了console.log为:

{­% load djangular_tags %­}
…
<script type="text/javascript">
console.log("djangoRMIProvider: "+djangoRMIProvider);
my_app.config(function(djangoRMIProvider) {
    djangoRMIProvider
        .configure(
            {­% djng_current_rmi %­} <!--errors here -->
         );
});
</script>

事实证明,{­% djng_current_rmi %­}{­% djng_all_rmi %­}都没有扩展到应有的范围。

我已经在复制Django-Angular文件djangular_tags.py下了:

my_app
     ↳ templatetags
         ↳ djangular_tags.py

我确定my_appdjango_angular(我必须将Django-Angular应用djangular重命名为django_angular,因为还有另一个包,Djangular,应用程序名称djangular - 尝试说十次快速)在'INSTALLED_APPS'中。

我甚至使用this dirty hack强制标记进入内置函数,但要么我做错了,要么它不起作用(我确实收到错误,说它正在查看django.templatetags.my_app.templatetags.djangular_tags,这是不正确,或其他错误,如果我在函数调用中放了my_app.templatetags.djangular_tags之外的任何内容)

1 个答案:

答案 0 :(得分:3)

函数声明的{}在查找要注入的标记时会混淆django。通过将其移出函数声明,它应该可以正常工作。

{% load djangular_tags %}
…
<script type="text/javascript">
    var tags = {% djng_current_rmi %} 
    my_app.config(function(djangoRMIProvider) {
        djangoRMIProvider
            .configure(
                 tags
             );
    });
</script>