【问题标题】:How an included partial insert code into parent's block?包含的部分代码如何插入到父块中?
【发布时间】: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 %}

【问题讨论】:

  • 经过一番研究,似乎twigembed标签是一个答案,另一种方法是在我的树枝中使用extends而不是include

标签: node.js template-engine swig-template


【解决方案1】:

我们必须在swig 中进行多次扩展,参见Issue 47(附示例代码)。

谁能说明embed 标签是否能解决我的需求?

【讨论】:

    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 2016-05-01
    • 2018-04-28
    • 1970-01-01
    • 2023-01-07
    • 2019-01-04
    相关资源
    最近更新 更多