Javascript 如何在不转换的情况下访问内联脚本中的into-PUG传递对象

Javascript 如何在不转换的情况下访问内联脚本中的into-PUG传递对象,javascript,node.js,express,pug,Javascript,Node.js,Express,Pug,是否可以访问内联脚本中传递到PUG中的整个对象,而无需使用进行转换!{JSON.stringify(object)} 使用!{JSON.stringify(events)}将现有的日期对象转换为需要转换回的字符串 通缉行为: // events.pug script. console.log(events[0].date.toLocaleString()); 是否可以在内联脚本中访问整个对象(将其传递到PUG中),而不进行转换 不,不是。内联脚本在浏览器中运行。您传递给Pug脚本

是否可以访问内联脚本中传递到PUG中的整个对象,而无需使用
进行转换!{JSON.stringify(object)}

使用
!{JSON.stringify(events)}将现有的日期对象转换为需要转换回的字符串

通缉行为:

 // events.pug
 script.
     console.log(events[0].date.toLocaleString());
是否可以在内联脚本中访问整个对象(将其传递到PUG中),而不进行转换

不,不是。内联脚本在浏览器中运行。您传递给Pug脚本的对象仅存在于服务器上,并且早已消失,在浏览器中永远不可用

因此,您似乎已经知道,从服务器到浏览器中运行的内联脚本共享数据的唯一方法是将数据放入页面本身的Javascript变量中,最简单的方法是在页面脚本中的某个变量定义中将其“呈现”为JSON。这将在内联脚本中建立一个包含所需数据的变量

请注意,数据必须可序列化为JSON才能工作。有些东西,例如服务器端套接字对象,不能以这种方式传输到前端,因为它们包含对本机对象的引用,而本机对象无法转换为JSON,在其他计算机上也不会有用

是否可以在内联脚本中访问整个对象(将其传递到PUG中),而不进行转换

不,不是。内联脚本在浏览器中运行。您传递给Pug脚本的对象仅存在于服务器上,并且早已消失,在浏览器中永远不可用

因此,您似乎已经知道,从服务器到浏览器中运行的内联脚本共享数据的唯一方法是将数据放入页面本身的Javascript变量中,最简单的方法是在页面脚本中的某个变量定义中将其“呈现”为JSON。这将在内联脚本中建立一个包含所需数据的变量


请注意,数据必须可序列化为JSON才能工作。有些东西,例如服务器端套接字对象,不能以这种方式传输到前端,因为它们包含对本机对象的引用,而本机对象无法转换为JSON,在其他计算机上也不会有用。

对象仅在您的Pug模板中定义,并用于生成HTML,然后发送到浏览器

但是可以做的是将JSON作为主标记的属性发送,如

<div class="container" id="data-container" data-demo="Your-JSON-Data">
  ...
  ...
</div>

<script>
 const dataAsString = JSON.parse( $("#data-container").attr("demo"));

</script>

...
...
const dataAsString=JSON.parse($(“#数据容器”).attr(“演示”);

对象仅在Pug模板中定义,用于生成HTML,然后发送到浏览器

但是可以做的是将JSON作为主标记的属性发送,如

<div class="container" id="data-container" data-demo="Your-JSON-Data">
  ...
  ...
</div>

<script>
 const dataAsString = JSON.parse( $("#data-container").attr("demo"));

</script>

...
...
const dataAsString=JSON.parse($(“#数据容器”).attr(“演示”);

好的。非常感谢。好吧非常感谢。如果可以直接在
标记中生成变量,为什么要将JSON作为标记的属性发送?如果可以直接在
标记中生成变量,为什么要将JSON作为标记的属性发送?