【问题标题】:markojs data variable access in client side javascript客户端javascript中的markojs数据变量访问
【发布时间】:2016-07-19 01:42:51
【问题描述】:

我正在将 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=", length);

【问题讨论】:

    标签: marko


    【解决方案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)};
    

    【讨论】:

    • 轻微修正:var recs = ${JSON.stringify(data.journeyDetail)};(不带双引号)
    猜你喜欢
    • 2012-06-10
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多