如何使用 express-handlebars 从 html 代码调用函数?
How to call functions from html code using express-handlebars?
我确定这是一个非常基本的问题,但我从使用 express-handlebars
的 MEAN 堆栈开始,并且仍在提升我的技能。
我来自 PHP 世界,我过去常常从我的 phtml
代码中调用 PHP 函数,如:
<p>© 2012 - <?= date('Y') ?> by ACME LLC. All rights reserved.</p>
这将使我得到当前年份并打印以下输出:
(C) 2012 - 2016 年,ACME LLC。保留所有权利。
我知道 handlebars {{ }}
会打印任何上下文变量,但不想将当前年份放在可打印的上下文中。
我也见过车把助手,但我不确定这是要走的路。
感谢帮助。
根据我的理解,您可以从 html 代码调用函数,但您可以在服务器端和客户端将助手设置为 运行。
var register = function(Handlebars) {
var helpers = {
// put all of your helpers inside this object
foo: function(){
return "FOO";
},
bar: function(){
return "BAR";
}
};
if (Handlebars && typeof Handlebars.registerHelper === "function") {
// register helpers
for (var prop in helpers) {
Handlebars.registerHelper(prop, helpers[prop]);
}
} else {
// just return helpers object if we can't register helpers here
return helpers;
}
};
// client
if (typeof window !== "undefined") {
register(Handlebars);
}
// server
else {
module.exports.register = register;
module.exports.helpers = register(null);
}
我确定这是一个非常基本的问题,但我从使用 express-handlebars
的 MEAN 堆栈开始,并且仍在提升我的技能。
我来自 PHP 世界,我过去常常从我的 phtml
代码中调用 PHP 函数,如:
<p>© 2012 - <?= date('Y') ?> by ACME LLC. All rights reserved.</p>
这将使我得到当前年份并打印以下输出:
(C) 2012 - 2016 年,ACME LLC。保留所有权利。
我知道 handlebars {{ }}
会打印任何上下文变量,但不想将当前年份放在可打印的上下文中。
我也见过车把助手,但我不确定这是要走的路。
感谢帮助。
根据我的理解,您可以从 html 代码调用函数,但您可以在服务器端和客户端将助手设置为 运行。
var register = function(Handlebars) {
var helpers = {
// put all of your helpers inside this object
foo: function(){
return "FOO";
},
bar: function(){
return "BAR";
}
};
if (Handlebars && typeof Handlebars.registerHelper === "function") {
// register helpers
for (var prop in helpers) {
Handlebars.registerHelper(prop, helpers[prop]);
}
} else {
// just return helpers object if we can't register helpers here
return helpers;
}
};
// client
if (typeof window !== "undefined") {
register(Handlebars);
}
// server
else {
module.exports.register = register;
module.exports.helpers = register(null);
}