【发布时间】:2013-04-03 05:08:08
【问题描述】:
我想要做的是将dropdown.swig 中的scripts 块添加到template.swig 中的scripts 块中。
我的使用模式可能是错误的。我有一个使用ejs-locals 模板引擎的工作代码,但我想切换到swig。
代码如下:
<!-- template.swig, to be extended -->
<body>
<header>
{% include "navbar.swig" %}
</header>
<!-- template scripts -->
<script src="/scripts/jquery.min.js"></script>
{% block body %}{% endblock %}
<!-- child scripts -->
{% block scripts %}{% endblock %}
</body>
<!-- index.swig, to be rendered-->
{% extends "template.swig" %}
{% block content %}
<div class="container row-fluid">
body
</div> <!-- row-fluid -->
{% endblock %}
<!-- navbar.swig, to be included-->
<div class="navbar navbar-fixed-top">
<!-- bootstrap navbar stuff -->
<!-- ... -->
{% if not hideDropDown %}
{% include "dropdown.swig" %}
{% endif %}
</div>
<!-- dropdown.swig, to be included-->
<div class="btn-group pull-right">
<!-- bootstrap drop down menu stuff -->
<!-- ... -->
</div>
{% block scripts %}
{% autoescape false %}
<script src="/scripts/bootstrap-dropdown.js"></script>
<script>
$(document).ready(function() {
$('.dropdown-toggle').dropdown();
});
</script>
{% endautoescape %}
{% endblock %}
【问题讨论】:
-
经过一番研究,似乎
twig的embed标签是一个答案,另一种方法是在我的树枝中使用extends而不是include。
标签: node.js template-engine swig-template