2013-10-28 152 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