javascript - partials 中包含的脚本在 ejs 中无法按预期工作

标签 javascript jquery ejs

我在我的网站上使用 lodash,它现在告诉我 uniqBy 不是一个函数。我想这可能是因为我使用了旧版本的库,所以我更新了它但仍然遇到同样的问题。我确实通过 ejs 将其带入 html <%- include %>但是当使用像 ejs lodash 这样的东西时,它不会按预期工作。我尝试使用 _.uniqBy对数组进行排序,但除非我专门将 lodash 脚本插入到 html 中,否则它将无法工作。

<%- include ../partials/scripts.ejs%>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/v/bs/dt-1.10.12/datatables.min.js"></script>
<script type="text/javascript" src="/js/accounting/dataTables.buttons.min.js"></script>
<script type="text/javascript" src="/js/accounting/jszip.min.js"></script>
<script type="text/javascript" src="/js/accounting/pdfmake.min.js"></script>
<script type="text/javascript" src="/js/accounting/vfs_fonts.js"></script>
<script type="text/javascript" src="/js/accounting/buttons.html5.min.js"></script>
<!-- <script type="text/javascript" src="/js/lodash.js"></script> Works with this -->
<script type="text/javascript">
    // Returns undefined unless the lodash script tag is uncommented
    console.log(_.uniqBy);
</script>
<script type="text/javascript" src="/js/cost/list.js">//Lodash used in here</script>
<%- include ../partials/footer.ejs%>

脚本部分是:

<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<script type="text/javascript" src="/js/bootstrap-formhelpers.min.js"></script>
<script type="text/javascript" src="/js/select2.min.js"></script>
<script type="text/javascript" src="/js/moment.min.js"></script>
<script type="text/javascript" src="/js/lodash.js"></script>
<script type="text/javascript" src="/js/jquery.cookiebar.js"></script>
<script type="text/javascript" src="/js/slide.js"></script>
<script type="text/javascript" src="/js/email.js"></script>
<script type="text/javascript" src="/js/jspdf.js"></script>

在我的 cost/list.js 中,我将 jquery 与 document.ready() 结合使用在我使用 lodash 之前,我的问题是为什么会这样?我想也许首先是范围问题,但事实并非如此,因为我到处都使用这些文件并且以前从未遇到过这个问题。然后我想这可能是加载,因为包含部分的 ejs 可以在页面准备好之前或之后加载,但我的 js cost/list.js 应该等待它准备好,因为 $(document).ready() .我不确定问题是什么,关于 ejs 所发生的事情的任何想法都会很棒。

最佳答案

再浏览一下页面,发现它的 pdfmake 也使用 lodash 但他们使用旧版本 (3.x) 而今天我在 (4.17.4) 这就是为什么 pdfmakes lodash 排在最后它优先并且成为全局。希望这会在将来帮助某人。检查你的脚本,我一个一个地检查它们,在每个其他脚本之后移动我的 lodash 脚本,然后找到它

关于javascript - partials 中包含的脚本在 ejs 中无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43469621/

相关文章:

javascript - ReactCSSTransitionGroup:transitionAppear 不起作用

javascript - AJAX 请求 jQuery 中的 this 关键字

javascript - 即使正确渲染,EJS 变量也会引发错误

javascript - Node.js Express 和 EJS 将对象传递给模板

javascript - 安卓-JavaScript : touchstart event not fired until zoom or scroll the page

javascript - 当从 javascript 调用字符串时,Latex 不渲染?

jQuery 点击输入和函数?

javascript - 通过 NodeJS 获取 JSON 数据时,如何通过 ExpressJS 更新我的 EJS 模板?

javascript - 为 ios 构建应用程序(react-native)

javascript - 如何显示特定数量的子div?