在哪里放置特定的模板助手

Where to put a particular template helper

我有一个 pageTitle 模板变量,它位于我站点每个部分的 header 元素 () 中,我希望它是动态的,而不是 hard-coded,因此站点维护更容易。

使用 Meteor(我目前正在阅读 Discover Meteor),最好将其放入 Session 变量中,然后 return 来自模板助手的值(即如Discover Meteor Session 章节中的例子),或者是否有一个 Atmosphere 包可以更好地处理这个问题?

此外,如果我确实将其放入模板帮助器中,我对放置帮助器的适当文件的位置有点模糊。也就是说,如果我(几乎)每个模板都有一个 .js 文件(因为我正在阅读本书),我是否真的需要放置与 return 中的 pageTitle 变量相同的辅助代码Session 在每个模板的 .js 文件中?

有这么多冗余似乎效率低下,但如果我有一个 Template.templateName.helper() 代码的实例,我不确定把它放在哪里。

非常感谢任何帮助。谢谢!

我会把它放在全局助手中。您可以为此使用 Template.registerHelper。我通常把这些助手放在client/helpers/global.js里面。我不确定您为什么要为此使用会话变量。但这里有一个简单的例子来说明这个助手的样子:

client/helpers/global.js

Template.registerHelper('setPageTitle', function (newTitle) {
  document.title = newTitle
})

用法:

{{ setPageTitle 'Hi' }}

我对 Meteor 也很陌生,但看起来您可以使用文档中的 Observe Collection - http://docs.meteor.com/#/full/observe 并创建一个包含您的 pageTitles 的集合。

所以它会像

document.title = yourCursor.observe(function({ changed: function(id, field){return field.pageTitle} })

至于位置,客户端的任何地方都可以。

不确定这是否是最好的方法,但希望对您有所帮助!