2013-07-01 29 views
9

比方說,我有這樣的把手幫手:傳遞someVar +'一個字符串'給Handlebars.js助手?

Handlebars.registerHelper('someRandomHelperCreatingALink', function(passedVarAndString, url) { 
    return '<a href="'+url+'">'+passedVarAndString+'</a>'; 
}); 

,並希望使用它像這樣,在這裏我通過這兩個字符串和VAR作爲第一個參數(user.name+' is a cool dude!'):

{{{ someRandomHelperCreatingALink user.name+' is a cool dude!!' '/a/cool/url' }}} 

我的問題:這是否有可能?

或者我必須添加一個額外的參數爲字符串(這將是不必要的)?像這樣的:

Handlebars.registerHelper('someRandomHelperCreatingALink', function(passedVarAndString, url, extraUnnecessary) { 
    return '<a href="'+url+'">'+passedVarAndString+extraUnnecessary+'</a>'; 
}); 

{{{ someRandomHelperCreatingALink user.name '/a/cool/url' ' is a cool dude!!' }}} 

回答

-2

添加變量加字符串作爲第一個參數似乎不工作在我有限的測試。如果它總是要傳遞給助手的變量和字符串,那麼即使看起來沒有必要,也可以添加它們。但是離開了無關的逗號:

{{{ someRandomHelperCreatingALink user.name '/a/cool/url' ' is a cool dude!!' }}} 

但是,如果你會發現自己傳遞選項任意數量,你可以使用一個options hash

的.js:

Handlebars.registerHelper('createLink', function(options) { 
    return '<a href="' + options.hash.url + '">' + options.hash.name + '</a>'; 
    }); 

的.html :

{{{ createLink name="Meteor" url="http://meteor.com" }}} 
+0

「將變量加上字符串作爲第一個參數似乎不適用於我的有限測試。」 - >這正是我想要完成的,因爲大多數情況下我只會傳遞一個字符串,但是像在應用程序中一樣,我需要傳遞一個字符串+一個var。 (現在從我的例子中刪除了昏迷,將代碼直接寫入編輯器,而沒有真正想到:))謝謝! –

2

這是不可能的,因爲此時參數只是一個字符串。您可以創建第二個助手來連接字符串,或者在控制器中構建字符串

相關問題