0

在 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 中使用该动态数据?

4

1 回答 1

1

几种可能性:

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

    Express 不能传递用作参数的变量的名称。只有Object它引用的属性。

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

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

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

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

    而不是:

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

    如何跳过 HTML 编码将取决于您与 Express 一起使用的视图引擎。但是,它可能就像=用 a替换一样简单-

    xyz({{-mydata}})
    
  • mydata可能仍然是您所期望的数据Object而不是数据。Stringjson_encoded

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

    xyz([object Object])
    

    而且,您可能仍需要stringify() mydata.

    xyz({{-JSON.stringify(mydata)}})
    
于 2013-09-18T09:22:26.783 回答