![](/img/trans.png)
[英]Call a function from an external JavaScript file in href with Symfony and Twig
[英]Call js function from external file Symfony Twig
我在 Symfony 4.4 中從樹枝視圖調用函數時遇到問題。 這個視圖叫做UserList.html.view並且它擴展了base.html.twig
文件的開頭如下:
{% extends 'base.html.twig' %}
{% block body %}
{% block javascripts %}
<script src="{{ asset('build/js/custom.js') }}"></script>
...
我還嘗試通過添加條目來使用 Encore,但它不起作用。 訪問外部函數的唯一方法是從父視圖調用它們,這顯然不是我想要的。
我得到的錯誤:
Uncaught ReferenceError: coucou is not defined at HTMLButtonElement.onclick (VM3883 manageAccounts:183) onclick @ VM3883 manageAccounts:183
我閱讀了一些關於此的其他帖子,但實際上沒有一個提供有效的解決方案。
感謝您的幫助 !
您好,歡迎來到 SO 論壇。 很難根據提供的代碼段來解決您的問題 - 但樹枝塊的使用可能沒有按照您的假設實現/工作。 即實現的主體塊內的 javascript 塊與基本模板中的類似命名的塊沒有相關性(我假設那里有類似命名的塊),因為它被放置在主體塊內,你在這個UserList.html.twig
中完全覆蓋了它UserList.html.twig
模板。
一個基本的工作樹枝結構是這樣的:
base.html.twig
<html>
<head>
...
</head>
<body>
...
{% block body %}
...
{% endblock %}
...
{% block javascripts %}
...
{% endblock %}
...
</body>
</html>
UserList.html.twig - 請注意parent()
調用,該調用確保也包含來自繼承模板的塊內容(即,如果您在那里定義了一些通用 jquery 或其他一些通用 js 包含) - 沒有parent()
您將在此模板中再次完全定義 javascripts 塊內容。
{% extends 'base.html.twig' %}
{% block body %}
...
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('build/js/custom.js') }}"></script>
{% endblock %}
我希望每個人在這個困難時期都做得很好! 法國上周開始遏制,所以我有足夠的時間找到解決方案。
有史以來最愚蠢的事情,但我不知道..
在你的 js 外部文件中,你必須像這樣聲明你的函數:
window.myfunction = function myfonction(){}
就這樣..
這可能會導致安全問題嗎? 我不知道所以我問xD
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.