客户端中的 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)};
我正在将 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)};