这些tal:xxx命令有什么作用?

时间:2015-01-22 06:12:47

标签: html zope tal

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

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

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

1 个答案:

答案 0 :(得分:1)

您可能希望熟悉&#34;传统&#34;模板语言看起来像这样:

<?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 aware ,它使用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并且会产生有保证的良好输出。 &#34;传统&#34;模板语言本质上只是连接字符串,这可以解决各种语法问题。 TAL适用于抽象的DOM级别,与浏览器相同。
  2. 您的模板是&#34;只是HTML&#34;在任何时候,您都可以在不需要PHP或其他任何模板处理器的情况下进行操作。前端设计人员可以完全独立于任何后端设计和编码模板,然后将完成的代码交给后端开发人员,后者将其连接到其余代码。