Ich habe ein Morris JS-Diagramm, das versucht, in ein Twitter-Bootstrap-Registerkartenfenster zu laden. Die Registerkarten funktionieren gut, aber das Diagramm wird nicht geladen.
Es sieht so aus, als ob dieser Artikel das Problem behandelt: Ссылка
Wie würde ich ihre Lösung in meinen Rails-Code übersetzen?
Hier ist mein Code:
Anzeigen:
%Vor%Anwendung.JS
%Vor%Controllername.js.coffee
%Vor%Eine Lösung für ein einzelnes Diagramm auf Registerkarten gefunden, die nicht korrekt angezeigt wurde:
Speichern Sie Ihr Diagramm als Variable:
%Vor%Dann lauschen Sie den Änderungen auf den Registerkarten und zeichnen Sie das Diagramm neu:
%Vor%Ich hoffe, das hilft jemand anderem.
Zuerst möchten Sie überprüfen, ob Sie die richtige Version von morris.js verwenden, der aktuelle Masterzweig auf github hat die Funktion redraw ().
Zweitens: Stellen Sie sicher, dass Sie in der Lage sind, ein Diagramm in der Domäne zu drucken, beispielsweise auf der ersten aktiven Registerkarte.
Drittens: Fügen Sie ein weiteres Diagrammelement auf einer Registerkarte hinzu, die nicht aktiv ist, fügen Sie Datenidentifikatoren für jede Registerkarte hinzu, um mehrere Diagramme neu zeichnen zu können, indem Sie Folgendes verwenden:
%Vor%Diese js wird bestimmen, welche Datenidentifikatoren betroffen sind, wenn eine Registerkarte "angezeigt" wird, Sie können mehrere Grafikelemente haben, die zum Beispiel durch Kommas getrennt sind. Es nimmt dann den Wert / die Werte des Bezeichners an, der offensichtlich mit Ihren Diagrammelementen übereinstimmt und die Funktion redraw () für sie aufruft.
Ich sehe keine Notwendigkeit, es rägerischer als das dafür zu machen, man könnte natürlich immer zu coffeescript konvertieren, aber das sollte funktionieren.
Dieser Code funktioniert für mich, versuchen Sie es, wenn Sie mehrere Diagramme auf einer Registerkarte haben:
%Vor%Ich hatte genau das gleiche Problem, aber in meinem Fall funktionierte keine der obigen Lösungen.
Was für mich funktionierte, war stattdessen die jquery ui tabs ( link ). Diese funktionierten wie ein Zauber.
Ihr Code müsste nur geringfügig neu geschrieben werden. Anstelle von
%Vor%schreiben:
%Vor%Und dann fügen Sie einfach dieses Skript hinzu:
%Vor%Ich hoffe, das hilft.
Übrigens, alle Fiddles, die ich gefunden habe und die versuchen, das Ereignis 'shown.bs.tab'
zu fangen, funktionieren aus irgendeinem Grund nicht mehr.
Tags und Links javascript ruby-on-rails ruby-on-rails-4 twitter-bootstrap