2016-04-14 5 views
4

Ich verwende Salvattore jQuery Masonry, um Elemente im Raster anzuzeigen. Die Elemente werden mithilfe der Knockout-Vorlage gerendert, bevor Salvattore initialisiert wird.Wie kompiliert Knockout-Vorlage in DOM manuell hinzufügen?

Zum Beispiel:

<div id="grid"> 
    <!-- ko foreach: aItems --> 
    <div> 
     <div data-bind="template: { name: 'xyz-template', data: $data }"> 
    </div> 
    <!-- /ko --> 
</div> 

<script> 
    salvattore.registerGrid(document.getElementById("grid")); 
</script> 

aber wenn Artikel Änderungen ich muss manuell Element hinzufügen folgende Skript

<script> 
    var grid = document.querySelector('#grid'); 
    var item = document.createElement('article'); 

    // Note in my case item is going to be my complied knockout template 
    salvattore.appendElements(grid, [item]); 
</script> 

aber so tun müssen, i Eingewilligt Knockout-Vorlage haben. Wie kann ich meine Knockout-Vorlage manuell kompilieren, damit ich sie mit der salvattore.appendElements-Methode hinzufügen kann? Oder gibt es eine Problemumgehung, die ich verwenden kann?

Hinweis: Salvattore jQuery Maurerarbeit selbst behandelt das Rendering von DOM im Raster, so dass der Effekt nach dem Initialisieren des Plugins keine Auswirkungen hat.

Antwort

2

Haben Sie versucht, die renderTemplate Knockout-Funktion programmatisch die Vorlage innerhalb eines bestimmten DOM-Element zu machen:

ko.renderTemplate("xyz-template",itemData,{},item,"replaceChildren"); 
Verwandte Themen