将ChicagoBoss
升级到最新版本(i.e.from 0.8.10 -> 0.8.14)
后。我一直在观察,"context"
这个词不能用在任何一个chicagoboss模板标签中。
它给出了语法错误:
例如。
{% if context == data.code %}
<option selected>{{data.value1}}</option>
{% else %}
<option selected>{{data.value2}}</option>
{% endif %}
{% url action="some_action" context=data.val %}
为这些模板标签抛出同样的错误:
Unhandled Error: error:{case_clause,{ok,[{"src/view/x_return/form_12.html",
[{{88,15},
erlydtl_parser,
["syntax error before: ",["\"context\""]]}]}]}} Stacktrace: [{boss_web_controller_render,render_view,5,[{file,"src/boss/boss_web_controller_render.erl"},{line,217}]},{boss_web_controller,execute_action_inner,9,[{file,"src/boss/boss_web_controller.erl"},{line,290}]},{boss_web_controller_handle_request,process_dynamic_request,5,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,254}]},{boss_web_controller_handle_request,process_request,5,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,240}]},{boss_web_controller_handle_request,set_timer,8,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,160}]},{boss_web_controller_handle_request,build_dynamic_response,5,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,129}]},{boss_web_controller_handle_request,handle_request,4,[{file,"src/boss/boss_web_controller_handle_request.erl"},{line,26}]},{mochicow_upgrade,upgrade,4,[{file,"src/mochicow_upgrade.erl"},{line,72}]}]
当我将"context"
更改为"cntxt"
或context
以外的任何内容时,它的工作正常。
您可能知道ChicagoBoss
标记与Django
模板标记类似。由于我遵循了ChicagoBoss以及Django文档,但我看不到"context"
是关键字或任何保留术语的任何文档。
注意 - 我的模板标签中包含许多包含"context"
的文件。因为更新每个文件以手动更改术语不是一个好主意。
答案 0 :(得分:1)
context
在版本0.9.4中更改了erlydtl(Django模板语言的Erlang实现)中的保留关键字,请参阅:
https://github.com/erlydtl/erlydtl/releases/tag/0.9.4
因此,当您更新ChicagoBoss
时,作为依赖关系,您可能已经提取了一个erlydtl versoin&gt; = 0.9.4
您可以在ChicagoBoss根目录的rebar.config中配置较低标记版本的erlydtl后重新编译ChicagoBoss。例如,如果您想要0.9.3版,请输入:
{erlydtl,“。*”,{git,“git://github.com/erlydtl/erlydtl.git”,{tag,“0.9.3”}}}