0
我正在從佈局文件導入宏,並在該宏內部定義了幾個小塊塊。樹枝:無法覆蓋在宏中定義的塊
當我在一個新的'視圖'文件中擴展我的'基'佈局文件時,我無法覆蓋我在宏中定義的塊的內容。
這是一個非常簡化的最小版本的用例。
結構:
base.twig
{% import 'macros' as macros %}
<section>
{{ macros.render_sections() }}
{% block working %}
content1-default
{% endblock %}
</section>
macro.twig
{% macro render_sections() %}
<section>
{% block notworking %}
content2-default
{% endblock %}
</section>
{% endmacro %}
view.twig
{% extends "base" %}
{% block working %}
content1-override
{% endblock %}
{% block notworking %}
content2-override
{% endblock %}
預期的行爲: 我希望看到「內容1,覆蓋內容2 - 覆蓋」在我的HTML。
實際發生的: 我看到「內容1,覆蓋內容2默認」
有沒有辦法來塊範圍傳遞給宏?
我已經嘗試在base.twig文件中定義宏,以排除導入功能,但這並沒有幫助。 ,而且顯然其他一切正常,因爲我可以看到被覆蓋的塊。
即使它能工作,我認爲這將代表巨大的濫用宏。爲什麼不能在主模板中泄漏這些'{%block%}'語句? – 2014-10-29 15:50:53
實際的用例是我有一個塊名稱的嵌套數組,我遞歸地使用宏遍歷數組並渲染塊{{block(array_item)}}。所以宏本身更復雜,有for循環,if和遞歸。 – Rodik 2014-10-29 15:52:40