如何渲染视图以锚定ID打开

时间:2016-10-27 12:45:48

标签: twig

是否有人知道是否可以在页面中间的锚标记处打开视图?

我希望index.htmlid="xyz"打开。

这是我的控制器代码:

View::renderTemplate('Folder/index.html', [
        'array' => $array
    ]);

这会引发错误:

View::renderTemplate('Folder/index.html#xyz', [
        'array' => $array
    ]);

1 个答案:

答案 0 :(得分:0)

这是不可能的,但是您可以将此解决方案与javascript一起使用。

使用树枝模板在页面上添加锚点。 如果javascript找到ID,它将在不重新加载页面的情况下将nativator重定向到锚点。

{% block body %}
   <h2 id="goTo">Lorem Ipsum</h2>
{% endblock %}

{% block javascripts %}
    <script>
        document.addEventListener("DOMContentLoaded", function(event) {
            if(document.getElementById("goTo")){
                location.href = "#goTo"
            }
        });
    </script>
{% endblock %}

如果您想使用HTTP 301/302代码重定向并锚定,则可以看到_fragment https://symfony.com/blog/new-in-symfony-3-2-routing-improvements