felix_reinhold
Returning Responder

WebEdit: JavaScript erzeugte DOM-Elemente editieren

Hallo zusammen,

in einem Template im FS5.0 rendern wir Einträge aus einer Datenquelle in ein JSON-Format und werten diese per Ajax aus.

Damit die Einträge trotzdem direkt editierbar sind haben wir ein Feld hinzugefügt, dass das fs-editor-snippet mit den nötigen Informationen enthält:

var events  = [

        $CMS_FOR(event, set_events)$

            {

            id: $CMS_VALUE(event.fs_id)$,

            xxx: "...",

            editor: '$CMS_VALUE(editorId(entity:event, view:"events"))$'           

            }

            $CMS_VALUE(if(#for.isLast, "", ","))$

        $CMS_END_FOR$

];

Mit Hilfe einer JavaScript-seitigen Blätterfunktion tauschen wir Elemente jeweils aus:

listview.append('<li '+event.editor+'>'+event.id+'</li>');

Beim initialen Laden der Seite im WebEdit funktioniert das Editieren. Wenn wir nun jedoch blättern ist das neu hinzugefügte LI-Dom-Element nicht mehr editierbar. Muss an dieser Stelle die WebClient-Funktionalität für dieses Element "nachgeladen" werden? Wir haben bisher folgendes probiert und haben leider lediglich eine Endlosschleife erzeugt (da die gesamte Seite und nicht nur das Element neu geladen wird):



top.WE_API.Preview.reload(document.getElementById('meinLI'));

Die Browser-Konsole printet folgendes (Auszug):

lineNumber: 4509

columnNumber: 19

com.google.gwt.core.client.JavaScriptException: (TypeError): c is null

Gruß

Felix

0 Kudos
2 Replies
s_ellers
Crownpeak employee

Hallo,

die reload-Methode erwartet an dieser Stelle ein Element welches eine editorId definiert hat. Es wird nicht das nächste Vater-Element mit einer editorId herausgesucht. Ist eine editorId definiert, so wird im Hintergrund die Vorschau geladen und nach einem Element gesucht welches die gleiche editorId hat. Ist dies von Erfolg gekrönt, wird das entsprechend Element in der Vorschau ausgetauscht. Wenn nicht erfolgt ein vollständiger Reload. Was hier wohl der Fall ist. Ein Reload ist aber auch eigentlich nicht dass was an dieser Stelle gemacht werden sollte. Hier müsste ein erneuter Scan nach editorId's erfolgen. Eine solche Funktionalität gibt es aber nicht.

0 Kudos

Hallo,

da keine weitere Nachfrage erfolgte, gehe ich davon aus, dass die Frage durch die gegebene Antwort gelöst wurde und kennzeichne diesen Thread daher als beantwortet.

Sollten dennoch weitere Fragen bestehen, bitte noch einmal melden.

Viele Grüße

Michaela

0 Kudos