2013-07-01 12 views
9

Diciamo che ho questo Manubrio aiutante:Passa someVar + 'una stringa' all'helper di Handlebars.js?

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

E voglio usarlo come questo, in cui passo sia una stringa e una var come primo argomento (user.name+' is a cool dude!'):

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

La mia domanda: sarebbe in qualche modo possibile?

Oppure devo aggiungere un argomento aggiuntivo per la stringa (che sarebbe inutile)? Qualcosa di simile:

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

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

risposta

-2

L'aggiunta della variabile più stringa come primo argomento non sembra funzionare nei miei test limitati. Se sarà sempre una variabile e una stringa che stai passando all'assistente, potresti anche aggiungerli, anche se sembra non necessario. Ma lasciare fuori le virgole estranea:

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

Ma, se si possono trovare te il passaggio di un numero arbitrario di opzioni, è possibile utilizzare un options hash:

.js:

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

.html :

+0

"Aggiungere la variabile più una stringa come primo argomento non sembra funzionare nei miei test limitati." -> Questo è esattamente ciò che voglio realizzare, poiché molto spesso passerò solo una stringa, ma come una volta nell'app ho bisogno di passare una stringa + una var. (Rimosso i coma dal mio esempio ora, ho scritto il codice direttamente nell'editor qui senza davvero pensare :)) Grazie! –

2

Questo non è possibile perché a questo punto il parametro è solo una stringa. Puoi creare un secondo helper per concatenare le stringhe, o costruire la stringa prima in un controller

Problemi correlati