我对play-framwork(1.2.4)有一个小问题。 我希望标签继承另一个标签,这个标签包含在扩展另一个网页的html页面中。解释的最佳方式是使用模式:
但是,它没有按我想要的方式工作。事实上,test.tag文件中的扩展似乎覆盖了Screen.html中的扩展。然后,所有Screen.html的内容都包含在block.tag #{doLayout /}
中,而不是main.html中的内容
有什么办法可以做我想要的吗? 感谢。
以下是来源:
main.html中
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<body>
#{doLayout /}
</body>
</html>
Screen.html
#{extends 'main.html' /}
<div id="Screen.html">
#{test /}
</div>
test.tag
#{extends 'tags/block.tag' /}
test.tag
block.tag
<div id="test">
#{doLayout /}
</div>
调用页面时生成的html
<div id="test">
<div id="Screen.html">
test.tag
</div>
</div>
如您所见,未包含main.html,并且屏幕包含在块中。有什么想法吗?
有关信息,需要的输出:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<body>
<div id="Screen.html">
<div id="test">
test.tag
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
您可以尝试在模板中使用#{extends /},但不要在标记中使用它们。
为了更灵活地在另一个标签之上构建标签,您可以这样做:
test.tag:
#{block }
test.tag
#{/block}
和block.tag:
<div id="test">
#{doBody /}
</div>
有了这个,你将身体的一部分从test.tag传递给block.tag并使用#{doBody /}将其插入block.tag中的某个地方
答案 1 :(得分:0)
我认为这可能是由于Groovy引擎对运行时进行#{extends}
评估,screen.html
调用test.tag
反过来扩展block.tag
,这在屏幕扩展到{后发生{1}}并且在运行时,groovy决定最后的延伸胜利。
可能你想尝试在解析时评估main.html
语义的rythm plugin。这就是说你的情况没有问题。