播放框架“设置”模板标签在文件之间不起作用
Posted
技术标签:
【中文标题】播放框架“设置”模板标签在文件之间不起作用【英文标题】:Play framework 'set' template tag not working between files 【发布时间】:2013-12-05 04:14:38 【问题描述】:我正在使用 play framework 1.2.5 开发一个项目
我有两个自定义标签文件,一个确实“设置”了一个值
#set foo:'bar' /
另一个文件“获取”这个值来决定是否显示一些标记。
% if(foo) %
#doBody /
% %
这曾经在以前的游戏版本中工作(不记得是哪个),现在不能工作,我不确定是升级本身还是其他什么东西坏了。
根据模板引擎标签的播放文档,设置应该在不同的文件之间工作:
定义一个值,该值可以在同一个模板或任何带有 get 标签的布局中检索。 http://www.playframework.com/documentation/1.2.3/tags#set
有什么可能出错的线索吗?
提前致谢
【问题讨论】:
即使在最新版本中也应该可以使用。您确定除了 Play 版本没有任何变化吗? 我不知道@i.am.michiel 会四处打听,知道它可能是什么吗? 【参考方案1】:set
仅适用于将数据传递给扩展模板的子模板,例如
父模板:
<html>
<title>$get 'title'</titl>
...
</html>
子模板:
$extends('parent.html')
$set title: 'My Title'/
要将数据从一个模板传递到另一个模板,您必须将被调用模板定义为标签。有关详细信息,请参阅 play 的文档。注意我不确定标签是否可以扩展另一个标签,很可能是不可能的
如果您使用PlayRythm 插件,那么它会容易得多。例如。从模板 foo
调用到 bar
可以像
栏模板:
Hello @who
foo 模板:
@bar("World")
@// or
@bar(who: "world")
@// or
@bar(who: "world")
注意 Rythm 没有单独的标签概念,实际上每个模板都是标签,您可以从另一个模板调用任何模板,甚至可以进行递归调用。您可以在http://fiddle.rythmengine.org/ 上尝试 rythm 的现场互动演示。
声明:我是 Rythm 模板引擎和 Play-Rythm 模块的创建者和维护者
【讨论】:
以上是关于播放框架“设置”模板标签在文件之间不起作用的主要内容,如果未能解决你的问题,请参考以下文章