2011-12-10 11 views
6

Ho una semplice configurazione del modello di baffi che accetta un oggetto player e crea un elemento di lista. Qual è il modo migliore per eseguire un metodo javascript su una variabile nei baffi? Ecco alcuni esempi di codice:Moustache/jQuery/javascript - come eseguire il metodo sulla variabile dei baffi?

var playerTemplate = '<li><span class="player-position">{{ position }}</span><span class="player-name">{{ first_name }} {{ last_name }}</span></li>'; 
var playerRow = Mustache.to_html(playerTemplate, player); 
$('ul#players-list').append(playerRow); 

Quello che mi piacerebbe fare è qualcosa di simile:

{{ position.toUpperCase() }} 

preferirei non cambiare l'oggetto stesso, perché mi può essere utile {{position}} per non essere maiuscolo in altre situazioni. Qualche consiglio sul modo più pulito e intelligente di farlo?

Grazie mille.

risposta

6

Baffo è intenzionalmente molto semplice ("Modelli senza logica") quindi non c'è molto che tu possa fare. Una possibilità è quella di aggiungere una proprietà positionUC:

player.positionUC = player.position.toUpperCase(); 

e poi nel modello:

{{positionUC}} 

è anche possibile aggiungere funzioni:

// Note that render(text) will be HTML though... 
player.uc = function(text, render) { return render(text).toUpperCase() }; 

e poi nel modello:

{{#uc}}{{position}}{{/uc}} 

Forse potresti passare a Handlebars e aggiungere un helper alle cose maiuscole.

+0

Oh, giusto, questo è un buon punto sulla non-logica. L'aggiunta di positionUC è stata rapida e semplice. è andato con quello, grazie! – tuddy

Problemi correlati