2016-07-31 11 views
0

Die Titelseite Ansicht ('Welcome/index.html.erb'):https://github.com/bfbachmann/Blog/blob/master/app/views/welcome/index.html.erbTurbolinks nicht ignorieren Seite in Rails-Anwendung

Rails Version: 4.2.6

Das übergeordnete Problem:

Ich versuche mein THREE.js-Modell richtig in meiner Rails-App erscheinen zu lassen. Alles funktioniert gut, wenn ich die Seite lade, indem ich ihre URL in die Suchleiste in meinem Browser eintippe oder wenn ich auf meiner Tastatur neu lade oder 'befehle' + R (unter Windows 'Strg' + 'R') drücke. Ich habe das Gefühl, dass Turbolinks nicht ausgelöst wird, wenn diese Aktionen ausgeführt werden. Dies lässt mein Modell in dem Zustand, in dem es sein sollte, wie unten gezeigt.

JEDOCH ... wenn ich auf einen der Links in der Navigationsleiste (Blog, Projekte, über usw.) klicke und dann durch Klicken auf das Haussymbol zur Startseite zurückkehre, verdoppelt sich entweder die Rotationsgeschwindigkeit des Modells oder die Modell ist dupliziert. Wenn das Modell dupliziert wird, steht eine Kopie still, während die andere mit der normalen Geschwindigkeit rotiert, wie unten gezeigt.

Broken Version Screenshot

Was ich

habe versucht, ich habe ein starkes Gefühl Turbolinks dafür verantwortlich zu machen ist. Also habe ich versucht, Turbolinks dazu zu bringen, diese Seite zu ignorieren, indem ich "data-no-turbolink" zum Hauptteil dieser Seite hinzufügte ... es hat nicht funktioniert. Tatsächlich glaube ich, dass Turbolinks die Seite nicht einmal ignorierte, da sie immer noch viel schneller geladen wurde, als ich auf den Link der Homepage klickte, als wenn ich die URL der Seite erneut eingegeben hatte.

Ich habe versucht, einen Rückruf hinzuzufügen, der das Ausführen von JavaScript für die Startseite stoppen würde, wenn der Benutzer von der Seite weg navigiert. Dies kann in der Ansicht gefunden werden, die ich oben verlinkt habe. Ich weiß, dass dieser Rückruf ausgelöst wird, weil ich es getestet habe. Das löst das Problem auch nicht.

Schließlich sollte ich auch erwähnen, dass ich das JQuery-Turbolinks-Juwel verwende, um Konflikte zwischen den beiden zu lösen.

Jede Hilfe würde sehr geschätzt werden. Ich habe versucht, dieses Problem seit Wochen zu lösen.

Edit: Ich habe vergessen zu erwähnen, dass ich gelesen habe, dass Turbolinks Probleme mit Inline-Javascript hat ... das könnte dieses Problem verursachen.

Bearbeiten: Es scheint, dass mein Javascript jedes Mal ausgeführt wird, wenn ich jede Seite auf meiner Website lade, obwohl es Inline-Javascript ist. Ich kann nicht verstehen warum.

Antwort

0

Es stellt sich heraus, dass ich recht hatte. Turbolinks ignorierte diese Seite nicht, weil ich es nicht richtig gesagt hatte.

Ursprünglich hatte ich "daten-no-turbolink = true" im Hauptteil der Seite, die Probleme verursachte. Es stellt sich heraus, dass die korrekte Vorgehensweise darin besteht, 'data-turbolinks = false' hinzuzufügen, wie in der offiziellen Dokumentation der Schienen here angegeben.