AngularJS:ng重复不显示数据(混合Django和Angular模板表达式)
index.html:AngularJS:ng重复不显示数据(混合Django和Angular模板表达式),angularjs,django,Angularjs,Django,index.html: {% load staticfiles %} <html ng-app = "myModule"> <head> <script src = '{% static "scripts/angular.js" %}'> </script> <script src = '{% static "scripts/application.js" %}'> </script>
{% load staticfiles %}
<html ng-app = "myModule">
<head>
<script src = '{% static "scripts/angular.js" %}'> </script>
<script src = '{% static "scripts/application.js" %}'> </script>
</head>
<body ng-controller = "myController">
Table: Message: {{ message }}
<table>
<tr ng-repeat = "t in technologies track by $index">
<td> {{ t.name }} </td>
</tr>
</table>
</body>
</html>
当我打开index.html时,没有显示来自模型的数据。我错过了什么明显的东西吗
我只是在这里显示html和控制器文件。但是代码是Django项目的一部分。问题是您混合了Django模板和角度模板。这意味着如果你写:
{{ t.name }}
这首先由Django模板呈现进行解释。如果存在这样的t
(具有名称
属性或元素),则它会呈现内容。如果没有,它将用一个空字符串(或您配置的另一个错误字符串)替换它。不管被什么替换,{{t.name}
本身都不存在了
因此,“Angular template”(呈现Django模板的最终产品)从未看到此标记。但是,有一些机制可以防止Django解释{{}
部分(以及其他模板标记)
您可以使用在某些特定部分禁用django模板引擎。所以通过这样写:
{% load staticfiles %}
<html ng-app = "myModule">
<head>
<script src = '{% static "scripts/angular.js" %}'> </script>
<script src = '{% static "scripts/application.js" %}'> </script>
</head>
<body ng-controller = "myController">
Table: Message: {% verbatim %}{{ message }}{% endverbatim %}
<table>
<tr ng-repeat = "t in technologies track by $index">
<td> {% verbatim %}{{ t.name }}{% endverbatim %} </td>
</tr>
</table>
</body>
</html>
{%load staticfiles%}
表:消息:{%verbatim%}{{Message}{%endverbatim%}
{%verbatim%}{t.name}{%endverbatim%}
因此现在,{{t.name}}
将不会被Django模板引擎计算,它只是将{{t.name}}
呈现为输出。然后,这可以由“角度模板引擎”解释,并由列表中的值替换
这个主题有一节。你把Django和angular混为一谈了。Django解释了
{{t.name}
,因为它可能找不到任何t
,所以它是空的。所以angular从未看到{{t.name}
标记。
{% load staticfiles %}
<html ng-app = "myModule">
<head>
<script src = '{% static "scripts/angular.js" %}'> </script>
<script src = '{% static "scripts/application.js" %}'> </script>
</head>
<body ng-controller = "myController">
Table: Message: {% verbatim %}{{ message }}{% endverbatim %}
<table>
<tr ng-repeat = "t in technologies track by $index">
<td> {% verbatim %}{{ t.name }}{% endverbatim %} </td>
</tr>
</table>
</body>
</html>