正如我们在Symfony2 文档中所读到的,JavaScript 文件必须在 body 标记的底部声明。
但是,如果我在布局模板中声明 jQuery 库,并且如果我想在子模板中使用 jQuery,则会出现以下错误:
$ 未定义
似乎 jQuery 是在我的脚本标记之后加载的。当我在 jQuery 文件的顶部放置一条警报消息时,会显示警报。
知道之前加载 jQuery 吗?
在我的基础、布局和子模板下方找到。
应用程序/资源/视图/layout.html.twig:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
{% block stylesheets %}
{# ... #}
{% endblock %}
</head>
<body>
<div id="container">
{# ... #}
</div>
{% block javascripts %}
{% endblock %}
</body>
</html>
src/MyBundle/resources/views/layout.html.twig:
{% extends "::layout.html.twig" %}
{% block main %}
{% block mybundle_body %}
{% endblock %}
{% endblock %}
{% block javascripts %}
{% javascripts
'@MyBlogBundle/Resources/public/js/jquery-1.8.3.min.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock javascripts %}
src/MyBundle/resources/views/MyBundle/modify.html.twig:
{% extends "MyBundle::layout.html.twig" %}
{% block mybundle_body %}
<script type="text/javascript">
// Enable the file uploader
$(function() { // my error here : $ is not defined
new PunkAveFileUploader({
{# ... #}
});
});
</script>
{% endblock %}
非常感谢。