的底部加载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的,但是很多很多更简单)。我想在几个页面上重复使用这些代码(创建,更新)。
欢迎任何想法!