将对象传递给把手后,如何在脚本标记中访问该对象?

use*_*557 1 node.js handlebars.js

我首先从 sql 获取数据,然后将其传递到把手中。

在 .handlebars/using view.js 中的标签内,我想访问医生,但我一直在获取 [object][object]。我之前尝试过 json.stringifying 它,但仍然没有运气。做这个的最好方式是什么?

umd.matchDocs(val2, function(data) {
  console.log(data);
  var renderDocs = {
    doctors: data
  }
  res.render("dashboard", renderDocs);
});
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 5

将对象传递给把手后,如何在脚本标记中访问该对象?

不,默认情况下不是。但是,您可以根据需要手动提供数据。

您传递给把手渲染操作的数据仅在渲染操作期间可用。如果您希望稍后能够在客户端<script>标记中访问某些数据,那么您可以将 Javascript 变量“呈现”到<script>包含所需数据的标记中。

请记住,将数据呈现为 Javascript 变量时,您需要呈现实际的 Javascript 文本(转换为 JSON 通常会为您创建文本)。

在您的具体示例中,您可以在渲染代码中执行以下操作:

umd.matchDocs(val2, function(data) {
  console.log(data);
  var renderDocs = {
    doctors: JSON.stringify(data)
  }
  res.render("dashboard", renderDocs);
});
Run Code Online (Sandbox Code Playgroud)

然后在模板中:

<script>
var doctors = {{{doctors}}};
</script>
Run Code Online (Sandbox Code Playgroud)

然后,这组医生将可用于您页面中的 Javascript。

如果您没有看到如上所示的三重大括号,那是为了告诉把手跳过数据中的任何 HTML 转义(因为这不是 HTML)。