Template.body.helpers returns 无值
Template.body.helpers returns no value
由于我的 ROOT_URL 在 Dev 和 Prod 环境中不同,我尝试使用 Meteor.settings
功能来正确设置我的 href
值。
因为在整个应用程序中都使用了链接,所以它似乎是正文模板上的助手的自然候选者。它是这样定义的:
Template.body.helpers({
rootURL: Meteor.settings.public.root_url
})
在模板中它是这样使用的:
<li class="{{guessesActive}}">
<a href="{{rootURL}}guesses" class="waves-effect waves-light">Guesses
<span class="sr-only">(current)</span>
</a>
</li>
但是 Meteor.settings.public.root_url
的值没有附加到锚点上。
我认为您只需要添加为已注册的助手,而不是附加到正文。 Template.registerHelper('rootURL', function() {...});
然后 return 适当的值。 Meteor 文档在 registerHelper
.
上有更多内容
原来是我误解了body
模板。我认为这意味着所有人都可以访问。事实并非如此。它旨在允许直接在 <body>
标签中使用助手。
要设置全局助手,定义一个名为 Helpers
的全局变量,并为其分配一个包含您希望访问的函数和变量的对象。
如本文所述post
由于我的 ROOT_URL 在 Dev 和 Prod 环境中不同,我尝试使用 Meteor.settings
功能来正确设置我的 href
值。
因为在整个应用程序中都使用了链接,所以它似乎是正文模板上的助手的自然候选者。它是这样定义的:
Template.body.helpers({
rootURL: Meteor.settings.public.root_url
})
在模板中它是这样使用的:
<li class="{{guessesActive}}">
<a href="{{rootURL}}guesses" class="waves-effect waves-light">Guesses
<span class="sr-only">(current)</span>
</a>
</li>
但是 Meteor.settings.public.root_url
的值没有附加到锚点上。
我认为您只需要添加为已注册的助手,而不是附加到正文。 Template.registerHelper('rootURL', function() {...});
然后 return 适当的值。 Meteor 文档在 registerHelper
.
原来是我误解了body
模板。我认为这意味着所有人都可以访问。事实并非如此。它旨在允许直接在 <body>
标签中使用助手。
要设置全局助手,定义一个名为 Helpers
的全局变量,并为其分配一个包含您希望访问的函数和变量的对象。
如本文所述post