2010-12-03 20 views
5

Kann jemand das Datenelement anfügen, das zum Rendern einer jQuery-Vorlage für das resultierende dom-Objekt verwendet wird?So hängen Sie Daten an jquery tmpl an

angesichts dieser tmpl:

<script id="sectionTemplate" type="text/x-jquery-tmpl"> 
<div class="story-writer-section sticker ${CssClasses}"> 
    <div class="title"> 
    <div class="delete-button sticker-button"/> 
     ${SectionName} 
    </div> 
    <div class="story-writer-story-container"> 
    </div> 
</div> 

und diese:

$("#sectionTemplate") 
     .tmpl(sections) 
     .appendTo(".story-writer-section-container"); 

Ich möchte jeden Abschnitt auf das Ergebnis befestigen über einen .data ('Abschnitt', Daten), damit ich zu einem späteren Zeitpunkt auf alle Daten zugreifen kann, da nicht alle Daten gerendert werden, z. B. IDs usw., die ich später bei Löschvorgängen abrufen muss.

Vielleicht so etwas wie dieses ...

 $("#sectionTemplate") 
     .tmpl(sections) 
     .appendTo(".story-writer-section-container").each(function (????) { 
           this.data('section', ?????); 
          }); 

Aber ich habe keine Ahnung, wie halten die aktuelle Datenelement erhalten verwendet, um dieses tmpl zu machen.

Perhpas gibt es eine Möglichkeit, dies in die Vorlage selbst aufzunehmen?

Jede Hilfe sehr geschätzt.

+0

Ich könnte immer ein verstecktes Feld zu der Vorlage hinzufügen, um Daten wie die IDs zu halten, aber würde das nicht tun müssen, wenn ich einfach Daten direkt zum Element hinzufügen kann, auf diese Weise kann ich jQuery Datenverknüpfung zwischen den Daten und verwenden die Benutzeroberfläche. –

Antwort

14

Ok, ich habe es gelöst. Es sieht aus wie die Daten, die bereits auf das von .tmpl() erzeugte Element hinzugefügt werden und können wie folgt zugegriffen werden:

$.tmplItem(this).data 

Sehr schön, wie üblich, jQuery nicht enttäuschen.

+0

danke, das hat mir sehr geholfen! :) – Shawn

+0

vielen Dank :) Vielleicht möchten Sie Ihre Antwort als akzeptiert markieren? – hacksteak25

Verwandte Themen