2011-02-20 1 views
14

È possibile definire una nuova variabile all'interno di un modello jquery? Ho letto i documenti ufficiali del modello jquery ma non ho trovato nulla su questo. Ho provato qualcosa come {{ var xxx=123 }} ma non ha funzionato. Infine Sto usando un hack facendodefinizione della nuova variabile all'interno del modello jquery

${$item.xxx=123,""}

e in seguito utilizzando

$item.xxx

ma sono sicuro che non è l'approccio migliore ...

+0

La tua domanda è stata una buona risposta :) – merlinbeard

risposta

19

I don' Penso che fare l'approccio $ item sia troppo brutto. È coerente con la posizione in cui si cercano le variabili passate tramite il parametro options a $ .tmpl.

Un altro approccio che ho utilizzato, basato su un piccolo suggerimento here, è in realtà definire un tag di modello "var".

Basta fare:

$.extend($.tmpl.tag, { 
    "var": { 
     open: "var $1;" 
    } 
}); 

quindi è possibile utilizzare nel tuo template come:

{{var xxx=123}} 
... 
<div>${xxx}</div> 

Inoltre, bel post blog qui su jQuery personalizzato template tags: http://blog.sterkwebwerk.nl/2010/12/15/custom-jquery-template-tags-1/

+3

E per impostando le variabili forse '$ .extend ($ .tmpl.tag, {" setvar ": {open:" $ 1; "}});' – Gavin

2

Puoi estendi modello jquery con tag eval

$.extend($.tmpl.tag, { "eval": { open: "$1;"} }); 

e utilizzare

{{eval var xxx = 123}} 
{{eval xxx += 23}} 
1

faccio:

${xxx=13, ""} 

e poi posso usare xxx in un sub o nello stesso modello

+0

jquery.tmpl crea queste variabili nel contesto globale. 'xxx' sarà una variabile globale. – Ikrom