Django和AngularJ

2024-10-03 09:10:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经下载了Thinkster Djangular Boilerplate,我成功地安装并创建了一个带有从远程数据库读取值的示例页面的应用程序。在

我现在试图配置它使用AngularJS来显示页面,基于它们的tutorial,但是没有用。在my/static/javascripts上/thinkster.js我添加了新的JS模块,并声明它没有依赖关系。在

(function () {
   'use strict';

   angular.module('thinkster', ['thinkster.controllerModule']);
   angular.module('thinkster.controllerModule', []);
})();

我已经在/static/javascripts中创建了这个模块/控制器模块.js并声明了一个关联的控制器来定义变量“names”(作为一个简单的测试)。在

^{pr2}$

作为测试HTML,我复制了索引.html代码到/模板/我的网页.html并编辑了几行代码,以便页面使用我的控制器,列出“names”数组并包含JS模块。在

<!DOCTYPE html>
<html ng-app="thinkster">
<head>
  <title>Da Page</title>
  <base href="/" />
  {% include 'stylesheets.html' %}
</head>

<body>
  <div class="row" ng-controller="myController">
      <div class="col-md-4 col-md-offset-4">
            <ul>
            <li ng-repeat="x in names">
                {{ x.name }} , {{ x.country }}
            </li>
          </ul>
      </div>
    </div>

    {% include 'javascripts.html' %}
</body>
</html>

在我的javascripts.html文件,我已经添加了我的新控制器。在

<script type="text/javascript" src="{% static 'javascripts/controllerModule.js' %}"></script>

最后,我的视图.py'文件(我现在使用的是应用程序之外的文件,我会尽快修改它)有一个'myPage'功能。在

def myPage(request):
    return render(request, 'myPage.html')

还有我的网址.py'具有重定向到中的函数的“myPage”模式视图.py'. 在

urlpatterns = patterns(
    '',
    url(r'myPage', views.myPage, name='myPage'),
    url('^.*$', include('myApp.urls')),
)

当我加载页面时,列表是空的。没有名字出现。我甚至不知道如何调试这个,只是好像配置有问题。有什么提示吗?在


Tags: 模块文件divincludenameshtmljsstatic
2条回答

您还可以使用$interpolateProvider并将{}}符号更改为{%%}或//。但是,在模块尚未初始化之前,请确保您正在执行此操作。在

  customInterpolationApp.config(function($interpolateProvider) {
    $interpolateProvider.startSymbol('//');
    $interpolateProvider.endSymbol('//');
  });

https://docs.angularjs.org/api/ng/provider/$interpolateProvider

在Django模板中包含角度语法。但是,它们都使用相同的{{ }}格式,因此由于Django首先解析模板,所以在angle有机会看到它们之前,它正在对这些变量进行求值(无结果)。在

通常,您应该将Django和angle模板分开;从Django的角度来看,角度模板实际上是静态文件,应该通过静态文件服务器加载。在

既然你只是在学习角度,那么现在这样做就足够了。为了解决眼前的问题,可以用Django {% verbatim %}...{% endverbatim %}块包装角度代码,这样Django就不会计算它。在

相关问题 更多 >