- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试创建一个开放的 div
标记条件并关闭 div
在 Zope 页面模板中使用 TAL 在另一种情况下标记,但我不允许重叠标记。
这是我的代码:
<div id="notaccordion">
<tal:x repeat="item python:range(26)">
<tal:x define="global block_name python:current.values()[0]['block_name']">
<tal:x condition="python:isDone">
</div>
</tal:x>
<tal:x condition="python:not isDone">
<tal:x replace="python:block_name">
</tal:x>
<div>
</tal:x>
</tal:x>
</tal:x>
</div>
重要的部分是:
<tal:x condition="python:isDone">
</div>
</tal:x>
这里是错误。
Compilation failed
zope.tal.taldefs.TALError: TAL attributes on <tal:x> require explicit </tal:x>
我尝试使用 Python 脚本,但它也不起作用。
<div id="notaccordion">
<tal:x repeat="item python:range(26)">
<tal:x define="global block_name python:current.values()[0]['block_name']">
<tal:x condition="python:isDone">
<tal:x content="python:context[close_div]()">
</tal:x>
</tal:x>
<tal:x condition="python:not isDone">
<tal:x replace="python:block_name">
</tal:x>
<tal:x content="python:context[open_div]()">
</tal:x>
</tal:x>
</tal:x>
</tal:x>
</div>
与 close_div
脚本:
print '</div>'
return printed
它返回 </div>
而不是 </div>
如果你想知道我为什么这样做。我有一个需要显示的树结构。因为我(认为我)不能递归地做,所以我尝试使用 LIFO 列表来模拟它。和 current
是我当前的节点。
我尝试实现这一点(节点是字典的字典...用作树):
lifo = list()
lifo.append([node, False])
while lifo:
current, isDone = lifo[-1]
block = current.keys()[0]
if isDone:
print '</div>'
lifo.pop()
else:
lifo[-1][1] = True
print '<div>'
print block
children = current[block].get('children', {})
if children:
for childBlock, childValue in children.items():
lifo.append([{childBlock:childValue}, False])
感谢任何帮助或建议
最佳答案
页面模板必须是有效的 XML,因此您不能随意包含标签。最好以递归方式处理树结构(可能使用宏片段):
<metal:recurse define-macro="list">
<ul>
<li tal:repeat="el elements">
<span tal:content="el/id">element id</span>
<metal:block tal:condition="el/children"
tal:define="elements el/children">
<div metal:use-macro="template/macros/list" />
</metal:recurse>
</li>
</ul>
</metal:recurse>
例如,Plone 导航 portlet 也使用 separate macro template对于每个级别,调用自身以呈现子项(recurse
是相同的模板)。
对于使用open_div
或close_div
脚本的特定方法,您需要mark the content value as structure
防止发生自动 HTML 转义:
<tal:x content="structure python:context[open_div]()">
关于html - Zope (ZPT) 重叠标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16033371/
我尝试在 Plone 的 ZPT 页面中使用 CSS。它工作的唯一方法是作为内联 css。在 header 中使用样式标签不起作用,也没有尝试使用链接的 css 文件。 有办法吗? 最佳答案 如果您只
我尝试创建一个开放的 div标记条件并关闭 div在 Zope 页面模板中使用 TAL 在另一种情况下标记,但我不允许重叠标记。 这是我的代码:
我创建了一个包含以下代码片段的 .pt 模板 ${password_confirm} 我的问题是 password_confirm 字段并不总是由 Pyramid 框架呈现,因此它显示以下错
我正在开发的 Python 网站中使用 Chameleon。这是一段代码: ${int(option.strftime('%I'))}${option.strftime(':%M%p')}
我是 web 开发的新手,正在尝试使用 Pyramid 在 python 中制作一个简单的网页。在使用 Chameleon 制作模板文件时,我遇到了一些障碍。我现在想做的事情非常简单。可调用 View
本文整理了Java中net.skirnir.freyja.zpt.ZptTemplateContext类的一些代码示例,展示了ZptTemplateContext类的具体用法。这些代码示例主要来源于G
我正在使用 Pyramid 框架,我想用 Chameleon 渲染一个带有任意深度的嵌套列表 (ul, li) 的 html 菜单。 我无法在 Chameleon 中找到某种递归方法来执行此操作。这似
我想将宏与 Pyramid +ZPT引擎(Chameleon)一起使用。 文档说“单个页面模板可以容纳多个宏”。 http://chameleon.readthedocs.org/en/latest/
我有一个浏览器 View 方法,它返回一个最多包含 18 个大脑的 OrderedDict,起源于与此类似的东西: mydict = OrderedDict() for b in brains:
如果不是主页,我只想更改我网站的标题。是否有一个 tal:condition 表达式? 我一直在阅读 this找不到我要找的东西... 谢谢! 最佳答案 最好的方法是使用两个专门用于此目的的非常方便的
我试图在 标签之间嵌入一些代码,但 Pyramid 不喜欢它并给了我 ExpatError:格式不正确( token 无效) 可能是因为我的代码中有 && 。我尝试使用 & 代替,但它没有在浏览器
我是一名优秀的程序员,十分优秀!