我正在编写 Tera 代码。
{% extends "base" %}
{% block content %}
<main>
<h1>{{ title }}!</h1>
<div class="telkiniu-sarasas">
<div class="row">
<div class="telkinio-pavadinimas headeris">Pavadinimas</div>
<div class="telkinio-adresas headeris">Adresas</div>
</div>
{% for telkinys in telkiniai %}
<div class="row" onclick="telkinys( {{ telkinys.id }} )">
<div class="telkinio-pavadinimas">{{ telkinys.pavadinimas }}</div>
<div class="telkinio-adresas">{{ telkinys.adresas }}</div>
</div>
{% endfor %}
</div>
</main>
{% endblock content %}
我在 javascript 代码上遇到了 3 个错误
<div class="row" onclick="telkinys( {{ telkinys.id }} )">
仅 html 行没有问题。 但运行代码一切都按预期工作。因为
{{ telkinys.id }}
被替换为数字
<div class="row" onclick="telkinys( 1 )">
如何从 VS Code 中删除错误消息?我认为 VS Code 将 Javascript 内的 Tera 代码解释为 Javascript 代码。而且 VS Code 不知道它会被数字替换。
我想不出有什么办法可以解决它。
附注 搜索后我发现.tera与HTML相关联,所以我打开设置 - >扩展 - > HTML 并在这里进行了搜索。找到两个地点: HTML > 格式:缩进车把 未选择格式和缩进 {{#foo}} 和 {{/foo}},因此我选择了它并收到有关错误索引或其他内容的错误(但我使用的不是 Handlebars,而是 Tera,所以它可能对我没有影响代码)。
第二: HTML > 格式:模板 尊重 django、erb、handlebars 和 php 模板语言标签。 选择这个也出现同样的错误。而且这也没有 Tera。
但没有成功:)
我找到了解决问题的方法。 Tera 模板基于 Jinja2,因此我从 VS Code 中删除了 Tera 扩展并添加了“Better Jinja”扩展。 之后,我使用这个答案将 .tera 扩展名关联到 jinja https://stackoverflow.com/a/51228725/3857286
现在我有了很好的语法突出显示,并且 javascript 代码中的 tera 标签没有问题。