Javascript Django和AngularJS

Javascript Django和AngularJS,javascript,python,angularjs,django,Javascript,Python,Angularjs,Django,我已经下载了,并设法安装和创建了一个应用程序,其中包含一个示例页面,可以从远程数据库读取值 我现在正试图将其配置为使用AngularJS来显示页面,基于它们的属性,但没有效果。在我的/static/javascripts/thinkster.js上,我添加了新的js模块,并声明它没有依赖项 (function () { 'use strict'; angular.module('thinkster', ['thinkster.controllerModule']); angu

我已经下载了,并设法安装和创建了一个应用程序,其中包含一个示例页面,可以从远程数据库读取值

我现在正试图将其配置为使用AngularJS来显示页面,基于它们的属性,但没有效果。在我的/static/javascripts/thinkster.js上,我添加了新的js模块,并声明它没有依赖项

(function () {
   'use strict';

   angular.module('thinkster', ['thinkster.controllerModule']);
   angular.module('thinkster.controllerModule', []);
})();
我在/static/javascripts/controllerModule.js中创建了该模块,并声明了一个关联的控制器来定义变量“names”(作为一个简单的测试)

作为一个测试HTML,我已经将index.HTML代码复制到/templates/myPage.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>
我的“url.py”有一个“myPage”模式,它重定向到“views.py”中的函数

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

当我加载页面时,列表是空的。没有名字出现。我甚至不知道如何调试它,只是看起来好像有些配置错误。有什么提示吗?

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

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


既然你只是在学习角度,那么现在这样做是公平的。为了解决眼前的问题,您可以使用Django
{%verbatim%}…{%endverbatim%}
块包装角度代码,这样Django就不会对其求值。

您还可以使用
$interpolateProvider
并将{}符号更改为{%}或/。但要确保舒尔在模块初始化之前就完成了这项工作

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

def myPage(request):
    return render(request, 'myPage.html')
urlpatterns = patterns(
    '',
    url(r'myPage', views.myPage, name='myPage'),
    url('^.*$', include('myApp.urls')),
)
  customInterpolationApp.config(function($interpolateProvider) {
    $interpolateProvider.startSymbol('//');
    $interpolateProvider.endSymbol('//');
  });