javascript - 通过 javascript 访问 Handlebars 变量

标签 javascript node.js express handlebars.js

我正在为 express js 框架生成一个 Handlebars View ,我需要从一个单独的 JavaScript 文件中访问我传递给 View 的变量。

例如:

var foo = {{user.name}}

有人有想法吗? helper ?

最佳答案

user.name 的值如果要将其包含在 <script> 中,则需要将其作为有效的 JavaScript 表达式输出,它将重新评估它作为代码。

目前,如果 user.name"john.doe"例如,生成的脚本将是:

var foo = john.doe; // `john` is treated as an object with a `doe` property

user.name至少需要用引号引起来,以便将其理解为字符串值/文字。

var foo = "{{user.name}}";
// result
var foo = "john.doe";

您还可以利用 JSON 和 JavaScript 在语法上的相似性,输出 JavaScript 可以理解为表达式的 JSON,并且已经包含引号。

Handlebars.registerHelper('json', function (content) {
    return JSON.stringify(content);
});
var foo = {{{json user.name}}};
// result
var foo = "john.doe";

注意三重 {{{...}}}在最后一个示例中禁用 HTML 编码,因此您不会得到:

var foo = &quot;john.doe&quot;

关于javascript - 通过 javascript 访问 Handlebars 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767928/

相关文章:

javascript - 将对象数组分解为单独的变量以进行数据库存储(React、express、sql server)

node.js - 无法使用任何已安装的 npm 软件包 : Not Recognized

mysql - 查询 Mysql Nodejs 时结果未定义

javascript - 当我的网页在后台时,如何防止计时器被 Chrome 限制?

javascript - 有没有办法在 html 中使用 JavaScript 检测溢出?

javascript - 从 node.js 参数未定义的 GET 请求中获取数据

javascript - 每个评论如何获得自己的框? (html、node.js)

node.js - Express Passport.js 未在 session 中保留用户对象

javascript - ExtJS 工具提示呈现长主体错误

javascript - 单击按钮停止启动功能