0

我正在将 json 对象数组设置为数据变量,例如 data.journeyDetail = detail; 在 marko 文件中,我需要在 javascript 块中访问它,并且每条记录都需要从对象中打印 FullName。这该怎么做?

服务器端代码:

 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>

[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象], [对象对象],[对象对象];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 回答