Kri*_*r K 9 javascript templates handlebars.js meteor meteor-helper
假设我有这个Handlebars助手:
Handlebars.registerHelper('someRandomHelperCreatingALink', function(passedVarAndString, url) {
return '<a href="'+url+'">'+passedVarAndString+'</a>';
});
Run Code Online (Sandbox Code Playgroud)
并希望像这样使用它,我传递一个字符串和一个var作为第一个参数(user.name+' is a cool dude!'
):
{{{ someRandomHelperCreatingALink user.name+' is a cool dude!!' '/a/cool/url' }}}
Run Code Online (Sandbox Code Playgroud)
我的问题:这会以某种方式成为可能吗?
或者我必须为字符串添加额外的参数(这会觉得没必要)?像这样的东西:
Handlebars.registerHelper('someRandomHelperCreatingALink', function(passedVarAndString, url, extraUnnecessary) {
return '<a href="'+url+'">'+passedVarAndString+extraUnnecessary+'</a>';
});
{{{ someRandomHelperCreatingALink user.name '/a/cool/url' ' is a cool dude!!' }}}
Run Code Online (Sandbox Code Playgroud)
emg*_*gee -2
在我有限的测试中,添加变量加字符串作为第一个参数似乎不起作用。如果它始终是传递给帮助器的变量和字符串,那么您不妨添加它们,即使看起来没有必要。但省略无关的逗号:
{{{ someRandomHelperCreatingALink user.name '/a/cool/url' ' is a cool dude!!' }}}
Run Code Online (Sandbox Code Playgroud)
但是,如果您可能发现自己传递了任意数量的选项,则可以使用选项哈希:
.js:
Handlebars.registerHelper('createLink', function(options) {
return '<a href="' + options.hash.url + '">' + options.hash.name + '</a>';
});
Run Code Online (Sandbox Code Playgroud)
.html:
{{{ createLink name="Meteor" url="http://meteor.com" }}}
Run Code Online (Sandbox Code Playgroud)