2016-07-22 8 views
5

Wenn ich ein Mockup-Muster wie <span class="pat-moment">2016-07-30T15:10:00</span> in einer faceted:view (eine benutzerdefinierte Ansicht für eea.facetednavigation) verwenden, funktioniert das Muster überhaupt nicht, da der Inhalt mit Javascript injiziert wird.Verwenden von Mockup-Mustern in facettierten Ansichten in Plone 5

In https://stackoverflow.com/a/35699974/637399 @ebrehault schrieb, dass Patterns zur Ladezeit initialisiert wird, und wenn die DOM Änderungen und neue Elemente enthalten, müssen Sie Registry.scan($('#content-core')) nennen, wo Registrypat-registry und #content-core der injizierte Teil der Seite ist.

Wie mache ich das im Zusammenhang mit eea.facetednavigation (https://github.com/eea/eea.facetednavigation)? Es verwendet ein Event-System (siehe https://github.com/eea/eea.facetednavigation/blob/master/eea/facetednavigation/browser/javascript/view.js). Wie höre ich eines dieser Ereignisse an, welches benötige ich und wie rufe ich dann den Scan an?

+0

Ich vermute, dass Sie MutationObserver verwenden möchten, um die Änderungen von eea.facetednavigation (Sorry, nicht MSIE <11 Unterstützung) zu sehen. https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver Für ältere MSIE müssen Sie möglicherweise ein Polyfill verwenden, das setInterval-Abfragen verwendet. – sdupton

Antwort

3

Sie müssen die EUA AJAX_QUERY_SUCCESS Ereignis binden:

$(Faceted.Events).bind(Faceted.Events.AJAX_QUERY_SUCCESS, function() { 
     Registry.scan($('#content-core')); 
}); 

Hinweis: Wenn Sie sagte:

und # content-Kern der injizierte Teil der Seite.

, die nicht korrekt ist, ist es nicht speziell das Injektionsziel (übrigens ist es nicht immer Injektion, wenn Sie Muster verwenden, wird die Injektion in Ihrem sehr Fall verwaltet von eea.faceted, das kein Muster) . Sie können jeden Teil des DOM erneut scannen, Sie müssen nur sicherstellen, dass der Teil, den Sie erneut scannen, die Muster enthält, die Sie aktivieren möchten (body wäre zum Beispiel in Ordnung).

+0

Danke, das funktioniert super! Ich bin so an Python gewöhnt, dass ich mich ständig wundere, wie '' (Faceted.Events) '' 'ohne Import funktioniert :-) – pbauer

Verwandte Themen