一旦我使用Handlebars.registerHelper()
为Handlebars注册了辅助函数,我是否可以更改和/或删除帮助程序?我可以再次使用registerHelper()
来覆盖当前的助手,还是有Handlebars.unregisterHelper()
这样的东西?或者,如果我需要在应用程序中更改帮助程序,我应该使用不同的方法吗?
对我来说,用例是<{>>流星的Iron Router plugin。我使用 layoutTemplate 作为我页面的一般结构。在我生成页面主体的主要内容之前,我希望在布局模板中使用帮助器(通过<template>
本身),以便每个单独的模板可以定义自己的页面标题,但不必指定每次在页面中的位置。例如,我的布局模板可能如下所示:
{{pageTitle}}
{{yield}}
然后在渲染模板的.js文件中,我将使用以下内容填充{{pageTitle}}
占位符:
Handlebars.registerHelper("pageTitle", function() {
return "My Page Title";
};
也许有另一种方法可以解决这个问题。
答案 0 :(得分:3)
你能做的就是这样的事情
Handlebars.registerHelper("pageTitle", function() {
return Session.get('pt');
};
function changePageTitle(str){
Session.set('pt', str);
}
作为被动的Meteor应该在会话变量发生变化时更新页面。当您切换到另一个页面时,只需运行changePageTitle。