2016-07-18 10 views
0

jsonオブジェクトの配列をこのdata.journeyDetail = detailのようなデータ変数に設定しています。 markoファイルでは、javascriptブロック内でアクセスする必要があり、レコードごとにFullNameをオブジェクトから出力する必要があります。これを行う方法?markojsクライアント側のデータ変数のアクセスjavadript

サーバー側のコード:

data.journeyDetail = detail; 
data.author = "najam"; 
this.body = marko.load("./views/journeyDetail.marko").stream(data); 

マルコファイル(クライアント側)

<script> 
    console.log("author=$data.journeyDetail.length"); 
    var length = $data.journeyDetail.length; 
    var recs = $data.journeyDetail; 
    console.log("len=", length); 
    console.log("array=", array); 
    for(var i=0; length; i++){ 
     console.log("counter=", recs[i].origin); 
    } 

    </script> 

ページにエラーが発生したエラーとラインが無効な割り当て するvar RECS =を持っているのjavascriptの寄付をレンダリングしている[オブジェクト「オブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトObj [オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクト「オブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクト「オブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクト「オブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト」、「オブジェクトオブジェクト]、[オブジェクトオブジェクト]。 console.log( "len ="、length);

答えて

1

JSON.stringify(...)を使用してページへのテンプレートデータをシリアル化します。これにより、script内のコードは、テンプレートがレンダリングされたときに最初に使用可能だったデータにアクセスできます。 data.journeyDetailデータには循環参照を使用できないため、JSON.stringify(...)にエラーがスローされることに注意してください。スクリプトコードの実行時にすべての情報を必要としない場合は、 map関数を使用して配列のデータを変換することができます。

あなたは使いたいでしょう:

var recs = ${JSON.stringify(data.journeyDetail)}; 
+0

わずか補正:

<script> console.log("author=$data.journeyDetail.length"); var length = $data.journeyDetail.length; var recs = ${JSON.stringify(data.journeyDetail)}; console.log("len=", length); console.log("array=", array); for(var i=0; length; i++){ console.log("counter=", recs[i].origin); } </script> 

唯一の変化は、この行だった 'VAR RECS = $ {JSON.stringify(data.journeyDetail)}; '(二重引用符なし) –

関連する問題