如何使用 express-handlebars 从 html 代码调用函数?

How to call functions from html code using express-handlebars?

我确定这是一个非常基本的问题,但我从使用 express-handlebars 的 MEAN 堆栈开始,并且仍在提升我的技能。

我来自 PHP 世界,我过去常常从我的 phtml 代码中调用 PHP 函数,如:

   <p>&copy; 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);
}