的底部加載JavaScript的我想用一種全局數組的定義什麼JavaScript的應在頁面結束加載。這樣,我可以動態地添加JavaScript文件。使用數組變量在
問題是基礎模板首先被渲染。想象一下,在此基礎HTML:
{% set javascriptList = [ 'js/vendor/jquery-1.10.1.min.js', 'js/vendor/bootstrap.min.js', 'js/main.js' ] %}
<!DOCTYPE html>
<head>
<title>my project</title>
</head>
<body>
{% block container %}
content goes here
{% endblock %}
{% block javascripts %}
{% for js in javascriptList %}
<script src="{{ asset(js) }}"></script>
{% endfor %}
{% endblock %}
</body>
</html>
然後我會在一個頁面,是這樣的:
{% extends base.html.twig %}
{% block container %}
<h1>Demo</h1>
Bla bla
Code I want to reuse:
{% include 'code-with-js.html.twig' %}
{% endblock %}
然後我的代碼與 - js.html.twig是:
<div id="DemoContent">
Some content, with a <a href="#" rel="tooltip">tooltip</a> thingy maybe.
</div>
{% set javascriptList = javascriptList|merge(['js/tooltip.js']) %}
所以,使用這個設置,我可以確保正在添加正確的JavaScript,當一段html被包括在內。
但是,這當然不起作用。基本html首先被渲染,所以元素將在渲染後被添加到javascriptList數組中。我的方法一定是錯的。
在我的項目這可重用的代碼實際上是與插入內容到文字區域的一些額外的按鈕的形式(所以TinyMCE的,但是很多很多更簡單)。我想在幾個頁面上重複使用這些代碼(創建,更新)。
歡迎任何想法!