0

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

サーバー側コード:

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

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

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

[object オブジェクト],[object オブジェクト],[object オブジェクト],[object オブジェクト],[object オブジェクト],[object オブジェクト],[object オブジェクト],[object オブジェクト],[object オブジェクト],[object オブジェクト], [オブジェクト オブジェクト],[オブジェクト オブジェクト]; console.log("len=", 長さ);

4

1 に答える 1

1

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

以下を使用します。

<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)};
于 2016-07-18T15:19:04.910 に答える