问题描述
我的Flash消息有部分内容。在局部中,我有一个脚本标记,它仅显示一个简单的警报。
layouts/_flash_messages.html.erb
<script>alert('test');</script>
当我直接将局部加载到视图中时,它可以正常工作,但是当我尝试从ajax响应加载局部时,警报永远不会触发。但是,当我打开开发工具时,我可以看到代码确实已添加到DOM中。这是我的JS
文件,该文件调用了部分Ajax响应:
update.js.erb
(function(){
let result = document.getElementById("flashMessages");
result.style.opacity = 1;
result.textContent = "";
result.insertAdjacentHTML("beforeend","<%= escape_javascript(render "layouts/flash_messages") %>");
})();
我不明白为什么警报永远不会触发。这没有任何意义。我认为这与我如何通过JS将部分代码添加到DOM有关。
更新
当我将update.js.erb
文件更改为可以工作,但是我的普通JS仍然无法工作时:
$("#flashMessages").html("");
$("#flashMessages").append("<%= escape_javascript(render "layouts/flash_messages") %>");
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)