更改/取消注册Handlebars helper(Meteor)

时间:2014-01-11 22:34:40

标签: javascript meteor template-engine handlebars.js

一旦我使用Handlebars.registerHelper()为Handlebars注册了辅助函数,我是否可以更改和/或删除帮助程序?我可以再次使用registerHelper()来覆盖当前的助手,还是有Handlebars.unregisterHelper()这样的东西?或者,如果我需要在应用程序中更改帮助程序,我应该使用不同的方法吗?

对我来说,用例是<{>>流星的Iron Router plugin。我使用 layoutTemplate 作为我页面的一般结构。在我生成页面主体的主要内容之前,我希望在布局模板中使用帮助器(通过<template>本身),以便每个单独的模板可以定义自己的页面标题,但不必指定每次在页面中的位置。例如,我的布局模板可能如下所示:

{{pageTitle}}
{{yield}}

然后在渲染模板的.js文件中,我将使用以下内容填充{{pageTitle}}占位符:

Handlebars.registerHelper("pageTitle", function() {
    return "My Page Title";
};

也许有另一种方法可以解决这个问题。

1 个答案:

答案 0 :(得分:3)

你能做的就是这样的事情

Handlebars.registerHelper("pageTitle", function() {
    return Session.get('pt');
};

function changePageTitle(str){
    Session.set('pt', str);
}

作为被动的Meteor应该在会话变量发生变化时更新页面。当您切换到另一个页面时,只需运行changePageTitle。

相关问题