所以这是我简单的角度应用程序。当我通过浏览器自己运行html文件时,会显示变量名称" nothing"。然而,当我通过创建一个只调用模板的虚拟视图(见下面的视图)将它集成到django中时,不会显示变量名称。唯一的区别是当使用django我通过{%static%}加载JS文件。除了django版本没有输出变量名之外,html输出对两者都完全相同。我把这个问题简化为最简单的形式,似乎无法理解这里发生了什么。
JS文件在django版本中100%加载。 Chrome控制台显示没有错误。我最初开发了一个简单的角度应用程序,以便与我的django应用程序集成,但如果这个简单的问题妨碍了我,我就无能为力。
views.py
def home_tester(request):
return render(request, 'angular/base.html')
HTML
<!DOCTYPE html>
<html ng-app="ZeTasty">
<head>
<meta charset="UTF-8">
<title>Learning AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js" type="text/javascript"></script>
<script src="app.js" type="text/javascript"></script>
<script src="gridfilter.js" type="text/javascript"></script>
</head>
<body>
<div id="content" ng-controller="GridFilter">
{{name}}
</div>
</body>
</html>
app.js
var app = angular.module('ZeTasty',[]);
gridfilter.js
app.controller("GridFilter", function($scope){
$scope.name = 'nothing';
});
答案 0 :(得分:3)
您需要添加{%verbatim%}
和{%endverbatim%}
代码
django和angular使用相同的{{
和}}
标记。
通过用{%verbatim%}
暗示django,他将忽略{{
和}}
。这将允许您将角度与django模板结合起来
示例:
<!DOCTYPE html>
<html ng-app="ZeTasty">
<head>
<meta charset="UTF-8">
<title>Learning AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js" type="text/javascript"></script>
<script src="app.js" type="text/javascript"></script>
<script src="gridfilter.js" type="text/javascript"></script>
</head>
<body>
<!-- 'verbatim' is required in order to disable Django's template engine
so we could use Angular's syntax -->
{%verbatim%}
<div id="content" ng-controller="GridFilter">
{{name}}
</div>
{%endverbatim%}
</body>
</html>