2014-03-06 18 views
1

我正试图学习如何使用Snap和Heist,并希望将JavaScript库链接放置到位。我在_js-libs.tpl创建此模板:来自模板的海斯特顶级标签?

<bind tag="jquery"> 
    <script type="text/javascript" src="/js/jquery-2.1.0.js"></script> 
</bind> 
<bind tag="d3js"> 
    <script type="text/javascript" src="/js/d3.js"></script> 
</bind> 

再尝试这种在base.tpl模板:

<html> 
    <head> 
    <title>Snap web server</title> 
    <link rel="stylesheet" type="text/css" href="/screen.css"/> 
    <apply template="_js-libs"/> 
    <jquery/> 
    <d3js/> 
    </head> 
    ... snip ... 

但这只是导致<jquery></jquery>,并在页面<d3js></d3js>。我将它绑定标签在应用了包含绑定的模板的模板中不可见。如何在模板中创建像这样的顶级标签?我只能找到在Haskell代码中创建顶级标签的例子。

+0

您使用编译模式还是解释模式?另外,您可能对此感兴趣。 http://hackage.haskell.org/package/snap-extras-0.7/docs/Snap-Extras-SpliceUtils-Compiled.html#v:scriptsSplice – mightybyte

+0

@mightybyte我正在处理任何'snap init'给我,哪我认为是解释。我宁愿移动到编译拼接,但我试图感受一些东西。感谢链接,这是我想要的,但我现在对一般问题感到好奇。 – asm

回答

2

绑定标签只能在本地工作到模板。唯一的例外是,如果您在应用标签的主体内使用绑定标签作为将名为“参数”的机制传递给应用模板。

+0

有没有办法用模板创建顶级拼接?例如[在Snap网站上](https://github.com/snapframework/snap-website/blob/master/snaplets/heist/templates/page-head.tpl),有一个标签''。有没有办法使用heist模板来创建类似的东西?感谢您在Snap上的所有工作。 – asm

+0

您可以通过在代码中绑定拼接来创建顶级拼接。您可以使用绑定标签在*模板内创建*。但是,如果您在另一个模板中使用标签,则不会导出这些标签。 – mightybyte