繁体   English   中英

JavaScript中的动态值-Node.js

[英]Dynamic values in javascript - Node.js

在node.js中,我通过以下方式将值发送到html:

render('/abc', mydata)

“ mydata”包含json_encoded格式。

我读这是:

{{=mydata}}

现在,在同一个html页面中,我有如下javascript:

 <script>
 xyz(); 
  function xyz() { 
      // i need to read the "mydata" here.
  }
 </script>

我尝试了这个不起作用的方法xyz({{=mydata}}) ,如何在node.js中使用该动态数据?

一些可能性:

  • mydata在视图中可能实际上不是本地的。

    Express无法传递用作参数的变量名称。 仅它引用的Object的属性。

    因此,您可能需要围绕mydata创建一个新的Object为其命名一个属性:

     render('/abc', { mydata: mydata }); 
  • 输出可能是由{{= }}进行HTML编码的,这很可能会导致JavaScript中的SyntaxErrors。

    因此,响应可能包含以下内容:

     xyz({&quot;foo&quot;:&quot;bar&quot;}) 

    而不是:

     xyz({"foo":"bar"}) 

    如何跳过HTML编码将取决于您在Express中使用的视图引擎。 但是,就像将=替换为-一样简单。

     xyz({{-mydata}}) 
  • mydata可能仍然是一个Object而不是您期望的json_encoded数据的String

    如果是这种情况,则可能使用的是标准.toString() ,它将产生:

     xyz([object Object]) 

    并且,您可能仍然需要stringify() mydata

     xyz({{-JSON.stringify(mydata)}}) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM