2017-03-29 5 views
0

Ich habe derzeit Schwierigkeiten bei der Verwendung des EmberJS-Routers und einer externen Bibliothek. Mit dem EmberJS-Router funktioniert die Routing-Funktionalität einwandfrei. Auch die Einbeziehung der externen Bibliothek innerhalb einer Komponente funktioniert wie erwartet.EmberJS Router und externe Bibliothek

ABER die Kombination von beiden funktioniert nicht.

Im Detail: Die Bibliothek (pdf.js) manipuliert das DOM und fügt Anker-Tags beim Scrollen durch das Dokument ein. Diese Anker-Tags funktionieren gut. Aber wenn ich versuche, das Ereignis zu "fangen" und die EmberJS-Routing-Funktionalität zu verwenden, funktioniert es nicht! Ich kann keinen Eventlistener in der DidRender() - Funktion erstellen und preventDefault verwenden, da die Elemente während der Ausführung von DidRender nicht vorhanden sind.

Hat jemand das gleiche Problem oder hat vielleicht eine Lösung für dieses Problem?

Cheers, Franz

Antwort

0

Ich gehe davon aus Sie eine Komponente verwenden,

Init 3-rd Party lib innerhalb didInsertElement Haken statt DidRender.

Das DOM ist innerhalb dieses Hooks bereit und Sie können das HTML-Element der Komponente mit this.$() bewerten.

Was bedeutet das?

Aber wenn ich versuche, das Ereignis zu "fangen" und die EmberJS Routing-Funktionalität zu verwenden, funktioniert es nicht!

DOM-Manipulationsoperationen sind alle Synchronisierungsoperationen. Binden Sie den eigenen sogar Handler innerhalb des didInsertElement Hakens auch, aber achten Sie genau auf Ihren this Kontext.

+0

Ja, ich initialisiere die lib bereits im didInsertElement, aber da die lib das DOM im laufe der Zeit verändert, bin ich auf das erwähnte Problem gestoßen. –

+0

Können Sie mehr darüber erklären, was das oben genannte bedeutet? –