2013-10-28 245 views
0

我具有以下在模板上延伸主布局树枝块:如何在树枝模板中获取树枝块的来源?

{% block abc %} 
    {{ name }} 
{% endblock %} 

下一I在同一模板的头部块。我想通过块ABC作为模板twig.js:

{% block head %} 
<script type="text/html" id="template-abc"> 
    {{ blocksource('abc') }} 
</script> 
{% endblock %} 

所以渲染的结果是: {{名}}

我怎样才能做到这一点?

我尝试在树枝拓展中构建“blocksource”函数,但我不知道如何在这里访问块源代码。

function blocksource(Twig_Environment $env, $blockname) { 
    $source = ???; 
    return $source; 
} 
+0

所以你想'abc'块的原始值?换句话说,你不希望Twig解释'{{name}}'? –

+0

是的,我想在symfony2树枝模板中使用相同的模板,并且在客户端使用javascript和twig.js – codez

回答

0

使用逐字标记,它会做你想做的。

{% verbatim %} 
    {{ things_you_want_to_show_as_twig_template }} 
{% endverbatim %} 

此标记内的所有内容都不会被树枝引擎解释。

你可以在twig documentation了解更多。

+0

如果我使用逐字,我如何在服务器端树枝模板中渲染此块? – codez

+0

一般来说,枝条模板只是一个带有特殊标签的字符串。使用树枝引擎呈现该字符串。下面是来自树枝文档的示例: $ loader = new Twig_Loader_String(); $ twig = new Twig_Environment($ loader); echo $ twig-> render('Hello {{name}}!',array('name'=>'Fabien')); – sickelap

+0

你写了一个php的例子。但逐字块将位于树枝模板中。我如何在树枝中呈现它,而不是在php中。 所以基本上我需要一个树枝块作为平原枝源输出并呈现为树枝模板。 – codez