【问题标题】:Django not playing nicely with simple angularjs, not sure whyDjango 不能很好地使用简单的 angularjs,不知道为什么
【发布时间】:2014-08-24 05:48:30
【问题描述】:

这就是我的简单 Angular 应用程序。当我通过浏览器自行运行 html 文件时,变量名称显示为“无”。但是,当我通过创建一个只调用模板的虚拟视图将它集成到 django 中时(请参见下面的视图),没有显示变量名称。唯一的区别是使用 django 时,我通过 {% static %} 加载 JS 文件。除了 django 版本不输出变量名外,两者的 html 输出完全相同。我已将问题分解为最简单的形式,但似乎无法理解这里发生了什么。

JS 文件在 django 版本中 100% 加载。 Chrome 控制台显示没有错误。我最初用 Angular 开发了一个简单的应用程序来与我的 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';
});

【问题讨论】:

    标签: javascript python django angularjs


    【解决方案1】:

    你需要添加{%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>
    

    【讨论】:

    • 哥们我爱你!!你不知道我花了多长时间试图弄清楚这一点。我不知道我怎么没有遇到任何必须这样做的地方。甚至在 django-angular 文档中也没有。我只是假设因为我没有向模板发送任何上下文,它只会使用 js 的东西。显然情况并非如此。再次感谢!!
    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多