客户端中的 markojs 数据变量访问 javascript

markojs data variable access in client side javascript

我正在将 json 个对象的数组设置为这样的数据变量 data.journeyDetail = detail;在 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>

当页面呈现时出现 javascript 错误并且有错误的行分配无效 var recs = [对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象]; console.log("len=", 长度);

您需要使用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)};