我正在为 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 = "john.doe"
关于javascript - 通过 javascript 访问 Handlebars 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767928/