Javascript Django与简单的AngularJ玩得不好,不知道为什么
这是我简单的角度应用程序。当我通过浏览器自己运行html文件时,变量名显示为“nothing”。然而,当我通过创建一个只调用模板的虚拟视图(参见下面的视图)将其集成到django中时,并没有显示变量名。唯一不同的是使用django时,我通过{%static%}加载JS文件。除了django版本没有输出变量名之外,这两个版本的html输出完全相同。我已经把问题分解成最简单的形式,似乎无法理解这里发生了什么 JS文件在django版本中100%加载。Chrome控制台没有显示错误。我最初在angular中开发了一个简单的应用程序,以便与我的django应用程序集成,但如果这个简单的问题阻碍了我,我将无能为力 views.pyJavascript Django与简单的AngularJ玩得不好,不知道为什么,javascript,python,django,angularjs,Javascript,Python,Django,Angularjs,这是我简单的角度应用程序。当我通过浏览器自己运行html文件时,变量名显示为“nothing”。然而,当我通过创建一个只调用模板的虚拟视图(参见下面的视图)将其集成到django中时,并没有显示变量名。唯一不同的是使用django时,我通过{%static%}加载JS文件。除了django版本没有输出变量名之外,这两个版本的html输出完全相同。我已经把问题分解成最简单的形式,似乎无法理解这里发生了什么 JS文件在django版本中100%加载。Chrome控制台没有显示错误。我最初在angul
def home_tester(request):
return render(request, 'angular/base.html')
HTML
gridfilter.js
app.controller("GridFilter", function($scope){
$scope.name = 'nothing';
});
您需要添加
{%verbatim%}
和{%endverbatim%}
标记
django和angular使用相同的{{
和}
标记。
通过使用{%verbatim%}
提示django,他将忽略{{
和}
。这将允许您将angular模板与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>
学习英语
{%verbatim%}
{{name}}
{%endverbatim%}
老兄,我爱你!!你不知道我花了多长时间才弄明白。我不知道我怎么会在任何地方都没有遇到这样的事情。即使在django也不行。我只是假设,因为我没有向模板发送任何上下文,所以它只会使用js的东西。显然情况并非如此。再次感谢!!
app.controller("GridFilter", function($scope){
$scope.name = 'nothing';
});
<!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>