-2

有人可以解释一下这些“tal”命令在我的 html 标签中的作用吗?我了解到它们是文本属性语言命令,但不清楚它们的作用。

<div tal:condition="myvar">
 Your command returns:<br><tal:block tal:content="myvar"></tal:block>
</div>

他们在评估条件吗?或占位符?请解释。

4

1 回答 1

1

您可能希望熟悉看起来像这样的“传统”模板语言:

<?php if ($myvar) : ?>
  <div>
    Your command returns:<br><?php echo $myvar; ?>
  </div>
<?php endif; ?>

或者:

{% if myvar %}
  <div>
    Your command returns:<br>{{ myvar }}
  </div>
{% endif %}

或该语法的类似变体。这些语言只是简单地输出文本并提供某些控制结构,仅此而已。

TAL 是HTML 感知的,它使用 HTML 语法作为它自己语法的一部分。

<div tal:condition="myvar">
  Your command returns:<br><tal:block tal:content="myvar"></tal:block>
</div>

它以与浏览器相同的方式解析 HTML,并使用 HTML 元素的属性来更改模板。在上面的示例中,div将根据 的值显示或删除整个内容myvar。它的作用与上面的其他两个示例相同。

优点是双重的:

  1. 您可以保证产生 100% 有效的 HTML 输出,因为模板系统本身需要有效的 HTML,是 HTML 感知的,并且会产生有保证的良好输出。“传统”模板语言本质上只是连接字符串,这使您面临各种语法问题。TAL 在抽象的 DOM 级别上工作,与浏览器一样。
  2. 您的模板始终“只是 HTML”,因此您可以在不需要 PHP 或任何其他模板处理器的情况下处理它。前端设计人员可以完全独立于任何后端设计和编码模板,然后将完成的代码交给后端开发人员,后端开发人员会将其连接到其余代码。
于 2015-01-22T06:25:07.230 回答