2011-12-20 3 views
0

J'ai le modèle jQuery suivant et j'ai besoin de garder une trace du nombre d'itérations pour appliquer certaines classes. J'ai essayé toutes les variantes standards de javascript auxquelles je peux penser. Comment puis-je itérer sur $ i et ensuite référencer $ i dans le modèle?jQuery Template compteur de boucle

<script type="text/html"id="sectionTemplate">       <span data-bind="css: { selected: $data == viewModel.selectedSection() }, click: function(i) { viewModel.selectSection($data) }"> 
${i++} 
<input id="radio" class="ui-helper-hidden-accessible" type="radio" name="radio"> 
<label class="class${i}" for="radio${i}" aria-pressed="false" role="button" aria-disabled="false"> 
<span class="ui-button-text">${$data}</span></label>          
</span> 

+0

modèle jQuery ne supporte pas d'ajouter une logique dans le code, si vous avez besoin, que, essayez autre moteur de modèle, comme ' doT ou blueimp' https://github.com/blueimp/JavaScript-Templates –

Répondre

2

Appeler une fonction externe dans le modèle peut accomplir ce que vous avez besoin.

<script type="text/javascript"> 
    var i = 0; 
    function count() 
    { 
     return i++; 
    } 
</script> 

Et vous l'appelez comme dans votre modèle:

<script id="sectionTemplate" type="text/x-jQuery-tmpl"> 
    ${count()} 
</script>