这更像是我发现的一个修复而不是一个问题。
在 Symfony 3 项目中,我决定将 bootstrap 3 升级到 4。这意味着使用 JQuery3,它与 Fos Comment Bundle 2.0.14(可能更早)的异步评论显示不完全兼容。
你可能会得到一个 JS 错误:
TypeError:$.get(...).error 不是函数
这更像是我发现的一个修复而不是一个问题。
在 Symfony 3 项目中,我决定将 bootstrap 3 升级到 4。这意味着使用 JQuery3,它与 Fos Comment Bundle 2.0.14(可能更早)的异步评论显示不完全兼容。
你可能会得到一个 JS 错误:
TypeError:$.get(...).error 不是函数
这是因为 js 中调用的 '.error' 在 jQuery3 中已被弃用(参见https://api.jquery.com/jQuery.Ajax/底部)。
要干净地更正此问题,而不修改捆绑文件:
步骤1:
复制文件
web/bundles/foscomment/js/comment.js
至
web/js/foscomments-fix-jquery-3.js
(或任何你想要的名字)
第2步:
更新行
$.post(url, data, success).error(wrappedErrorCallback).complete(wrappedCompleteCallback);
至
$.post(url, data, success).fail(wrappedErrorCallback).done(wrappedCompleteCallback);
和
$.get(url, data, success).error(wrappedErrorCallback);
至
$.get(url, data, success).fail(wrappedErrorCallback);
第 3 步:
复制
供应商/friendsofsymfony/comment-bundle/FOS/CommentBundle/Resources/views/Thread/async.html.twig
至
应用程序/资源/FOSCommentBundle/views/Thread/async.html.twig
第4步:
修改行
fos_comment_script.src = '{{ asset('bundles/foscomment/js/comments.js') }}';
像这样:
fos_comment_script.src = '{{ asset('**js/foscomments-fix-jquery-3.js**') }}';