2017-04-18 7 views
1

私はlodashを使って私のウェブサイトを利用しています。今はuniqByが関数ではないことを伝えています。これは私がライブラリの古いバージョンを使用していることが原因であると思っていたので、私はそれを更新して、同じ問題を抱えていたのかもしれません。私はejs <%- include %>経由でhtmlに持っていきますが、ejs lodashのようなものを使うと期待どおりに動作しません。配列をソートするのに_.uniqByを使用しようとしますが、特にlodashスクリプトをhtmlに挿入しない限り、動作しません。partialsに含まれるスクリプトは、ejsで期待どおりに動作しません

<%- 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%> 

とスクリプト部分である:私の質問は、なぜこれが起こるんですので、私はlodashを使用する前に、私はdocument.ready()でjqueryのを使用して、私のコスト/ list.jsで

<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> 

?私はおそらく最初にそれが範囲だったと思ったが、私はこれらのファイルをどこでも使用していて、前にこの問題があったことはない。それで、私は、部分的なものを含むejsがページが準備ができている前でも後でもロードできると思ったのかもしれませんが、js cost/list.jsは$(document).ready()のために準備が整うのを待つべきです。何が問題なのかわかりませんし、ejsに何が起こっているのかについてのアイデアは素晴らしいでしょう。

答えて

1

pdfmakeもlodashを使用していますが、古いバージョン(3.x)を使用しています(4.17.4)。これはpdfmakes lodashが最後に来るので優先ですグローバルになります。うまくいけば、これは将来誰かを助けるでしょう。あなたのスクリプトをチェックするスクリプトを1つおきに動かすと、私はlodashスクリプトを1つずつ移動させ、その方法で見つけました。

関連する問題