conditional - 如何有条件地在 TAL (PHPTAL) 中添加 id 属性?

标签 conditional template-tal phptal

我正在 PHPTAL 中创建表单元素模板文件。我希望能够选择性地传入一个字段的 id 属性......

到目前为止,代码如下所示:

<xml>
  <tal:block metal:define-macro="text">
    <label tal:condition="php: !isset(hideLabel) || isset(hideLabel) && !hideLabel">${field/label}</label>
    <input name="${name}" type="text" value="${field/value}" />
    <p tal:condition="exists:field/error">${field/error}</p>
  </tal:block>
</xml>

这就像宣传的那样工作。我想补充的是一些东西,比如
<input name="${name}" tal:attributes="id exists: id $id | $name" value="${field/value}" />

允许我有选择地从 METAL 调用中传入一个 id ......

我应该以不同的方式做吗?我试过使用 PHP: isset(id) ? $id : NULL及其变体,但最终会得到 id="0"在生成的 HTML 中。

有任何想法吗?

最佳答案

如果其他人需要它,一个有效的答案是:

<xml>
  <tal:block metal:define-macro="text">
    <label tal:condition="not: exists:hideLabel">${field/label}</label>
    <input name="${name}" tal:attributes="id id | nothing" type="text" value="${field/value}" />
    <p tal:condition="exists:field/error">${field/error}</p>
  </tal:block>
</xml>

传入的变量是 id、name、一个名为 field 的数组和 hideLabel 。

请注意,我还设法将标签测试简化为我认为更符合习惯的 TAL。

关于conditional - 如何有条件地在 TAL (PHPTAL) 中添加 id 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734822/

相关文章:

r - R中的条件和

mvvm - PHPTAL: View 模型解决方案

php - 带 Twig 的缓存 block

css - 如何使用 TAL 创建斑马条纹 CSS?

template-tal - PHPTAL:如何转储对象以查看所有属性

php - 如何在 PHPTAL 宏中打印未关闭的标签

c# - 条件为假时执行的 If 语句 True block

conditional - 使用稍后在 verilog 中定义的条件变量

r - 数据表中行之间的条件数学

html - 将数据存储在 HTML 标记中作为自定义属性