将someVar +'一个字符串'传递给Handlebars.js帮助器?

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)