2016-10-27 11 views
0

配列を含むクライアントに情報を送信します。ページングの効果があるため、配列の3要素のみを表示します。私は、あなたは、私はあなたが正しいjsファイル内のejs配列にアクセスしよう

  <% var index = Math.floor(populated.reviews.length /3)%> 
      <div class = "pageLinks"> 
       <%for(var i = 0; i < index; i++){%> 
        <a href= "<%=i + 1%>" id = "<%=i%>"><%= i + 1 %> </a> 
       <%}%> 
      </div> 
     </div> <!--reviewSide--> 

答えて

1

ファイルEJSでそれにアクセスすることができるよ

$(function(){ 
    $(".pageLinks a").on("click", function(e){ 
     e.preventDefault(); 
     var pageNum = $(this).attr("id") 
     var test = JSON.stringify(populated) // I wanted populated to be the array from node 
         //doesn't have to have the stringify part 
         // I know I can't do this prob bec. it's not in an ejs file but I wanted something like that 
     console.log(test) 

    }) 
}) 

にfile.js

のjsファイルに改ページコードを書きたかったです(静的な)jsファイルの生のオブジェクトに同じ方法で到達することはできません。

$(function(){ 
$(".pageLinks a").on("click", function(e){ 
    e.preventDefault(); 
    var pageNum = $(this).attr("id") 
    if (typeof(populated) != "undefined"){ 
     // you want to check to make sure this exists before trying to use 
     // it, just in case someone manages to click a page link before the 
     // code in your .ejs file has run. 
     var test = JSON.stringify(populated) 
     console.log(test) 
    } 
}) 
}) 

:あなたは、このようなクリックハンドラでチェックするか

<script type="text/javascript"> 
    var populated = <%-JSON.stringify(populated)%>; 
</script> 

ただし、このようなファイルあなたEJSにグローバル変数に取り込むことができます。あなたが呼び出すことができるグローバルスコープに何かを公開している限り、読み込んだときに外部のfile.jsに渡します。あなたの現在のスクリプトは、匿名関数のすべてを包み込みますが、このような名前の関数でラップできます。

.ejsファイル:

<script type="text/javascript"> 
    initialiseMyAwesomeFunction(<%-JSON.stringify(populated)%>); 
</script> 

.jsファイル:

function initialiseMyAwesomeFunction(populated){ 
    $(function(){ 
     $(".pageLinks a").on("click", function(e){ 
      e.preventDefault(); 
      var pageNum = $(this).attr("id") 

      var test = JSON.stringify(populated) 
      console.log(test) 
     }) 
    }) 
} 
+0

あなたが意味しますかejsファイルのスクリプトタグにあなたのコードの 'var populated'部分を置くことができ、' jsファイル 'の' populated'変数にアクセスすることができるでしょうか?ちょうどそれのように? jsファイルの配列である 'populated'変数のデータに基づいてクリック処理を行うことができます。 –

+0

これを外部ファイルに渡す方法は表示されません。 –

+0

うまくいけば分かりやすいように編集しました:) .ejsファイルに '%= nodeVariable%>'を入れることができるので、.ejsでその部分を行う必要がありますが、それを静的.jsファイルに渡すことができますあなたが呼び出すことができるグローバルスコープに何かがありますか、またはあなたが探しているグローバルスコープに何かを設定した場合です。 –

関連する問題