为啥 Angular 在 GAME 中会失败?

Posted

技术标签:

【中文标题】为啥 Angular 在 GAME 中会失败?【英文标题】:Why does Angular produce a failure in GAE?为什么 Angular 在 GAME 中会失败? 【发布时间】:2014-04-24 18:39:55 【问题描述】:

我一直在使用 Google 应用引擎来托管我的网页,并在其中练习我的编码技能。我的网站建立在 Foundation 框架之上。我开始玩 Angular 并且 appengine 返回一条错误消息:


Traceback (most recent call last): 
File "/base/data/home/runtimes/python/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 714, in __call__handler.get(*groups)
File "/base/data/home/apps/s~verkkolakimies/1.374513895376995789/main.py", line 16, in get self.response.out.write (template.render (path, ))
File "/base/data/home/runtimes/python/python_lib/versions/1/google/appengine/ext/webapp/template.py", line 91, in render
t = _load_user_django(template_path, debug)
File "/base/data/home/runtimes/python/python_lib/versions/1/google/appengine/ext/webapp/template.py", line 113, in _load_user_django
template = django.template.loader.get_template(file_name)
File "/base/data/home/runtimes/python/python_lib/versions/third_party/django-0.96/django/template/loader.py", line 80, in get_template
template = get_template_from_string(source, origin, template_name)
 File "/base/data/home/runtimes/python/python_lib/versions/third_party/django-0.96/django/template/loader.py", line 88, in get_template_from_string
return Template(source, origin, name)
File "/base/data/home/runtimes/python/python_lib/versions/third_party/django-0.96/django/template/__init__.py", line 158, in __init__
self.nodelist = compile_string(template_string, origin)
File "/base/data/home/runtimes/python/python_lib/versions/third_party/django-0.96/django/template/__init__.py", line 174, in compile_string
return parser.parse()
File "/base/data/home/runtimes/python/python_lib/versions/third_party/django-0.96/django/template/__init__.py", line 254, in parse
filter_expression = self.compile_filter(token.contents)
File "/base/data/home/runtimes/python/python_lib/versions/third_party/django-0.96/django/template/__init__.py", line 338, in compile_filter
return FilterExpression(token, self)
File "/base/data/home/runtimes/python/python_lib/versions/third_party/django-0.96/django/template/__init__.py", line 558, in __init__
raise TemplateSyntaxError, "Could not parse the remainder: %s" % token[upto:]
TemplateSyntaxError: Could not parse the remainder:  + " "+ sukunimi

我将问题追溯到添加角度代码:

 <div class="panel radius">
 Vainajan nimi: etunimi + " "+ sukunimi<br>
 Tyttönimi: tyttonimi<br>
 Henkilötunnus: vainaja_hetu<br>
 Ammatti: ammatti<br>
 Syntynyt: vainaja_hetu<br> Kuollut: deathDate <br>
 Postinumero: zip
 </div>

我正在从同一个页面表单中获取角度数据:

  <form action="#" method="POST" name="perukirjakone" ng-init="sukunimi=juttu; etunimi=tuttu">
    <fieldset id="perittäväSet" class="color3">
      <legend class="fi-info"> XXX</legend>

      <label for="vainaja_first_name" >Vainajan etunimi</label><br>
      <input  type="text" required name="vainaja_first_name" id="vainaja_first_name" tabindex="1" placeholder="Esa" ng-model="etunimi"> 

这两个花括号是否会影响 Python,或者我是否应该在我的代码中寻找其他漏洞?我想我的问题是 Angular 和 GAE 是否存在已知问题?

【问题讨论】:

这个我觉得很奇怪:etunimi + " "+ sukunimi 解决方法: etunimi sukunimi ??? @voscausa etunimi + " "+ sukunimi 在 AngularJS 中非常好。 对不起。在我看来,这就像 django 模板。如果您使用的是 django,则必须转义 django 翻译。逐字查找 django 以转义 Angular 代码。 我发现这篇文章也很有帮助:link 【参考方案1】:

罗宾拥有它。 Django 模板和 Angular 都想使用。在http://django-angular.readthedocs.org/en/latest/integration.html

中提供了解决该问题以及解决其他一些 Django/Angular 问题的建议

我只将 Angular 与 GAE 一起使用过几次,发现将 Angular 部分隔离到静态文件中,并使用 GAE 来处理 Ajax 请求,效果很好。

【讨论】:

【参考方案2】:

这与 App Engine 无关,它与您使用的框架 Django 有关。

Django 还在其模板中使用双花括号,这使其与 AngularJS 冲突。

见:AngularJS with Django - Conflicting template tags

【讨论】:

以上是关于为啥 Angular 在 GAME 中会失败?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 import.sql 在 Spring Boot 中会失败?

为啥在页面渲染过程中会多次调用 [ngStyle]?

为啥 Angular 8 CircleCI 构建在执行 ng test --watch-false 时失败,业力配置为 singleRun=true?

为啥我的单元测试在 Chrome 中通过而在 PhantomJS 中失败?

为啥我会因为 jQuery 而出现“启动应用程序失败”错误?

为啥我的 Angular 应用在​​ Github Pages 上是空白的?