我試圖讓Jinja2宏輸出到調用模板的不同部分。我想這樣做的原因是因爲內嵌Javascript是宏的一部分,但我希望在模板末尾使用所有Javascript。基本上,我想要做這樣的事情Jinja宏訪問不同的塊
{% import 'tooltip.html' as tooltip %}
<html>
<body>
{% block contents %}
{% tooltip('mytool') %}
{% endblock %}
<script>
{% block javascript %}
{% endblock %}
</script>
</body>
</html>
而在宏文件
{% macro tooltip(name) %}
<div id='{{ name }}'>
This is my tooltip
</div>
{% block javascript %}
jQuery("#{{ name }}").click(function(){//do something});
{% endblock %}
{% endmacro %}
所以,最終的結果會是這樣的
<html>
<body>
<div id='mytool'>
This is my tooltip
</div>
<script>
jQuery("#mytool").click(function(){//do something});
</script>
</body>
</html>
我希望我所有的JavaScript末我的模板,但宏似乎只是回到那裏。
有什麼我失蹤或超出標準Jinja2,並需要寫一個擴展嗎?
謝謝
沒錯,那是個好主意。不幸的是,我想要做的事情是要求JavaScript從模板中獲得一些邏輯,這在每個工具提示中都是獨一無二的。我應該在我的例子中更清楚,但我想保持簡單。是的,我看到的越多,Jinja2看起來就越不可能,或許可以考慮重組。謝謝 – 2010-11-22 18:29:56