Ich bin ein wenig verwirrt darüber, warum dies nicht ein häufiger angesprochenes Problem ist, aber hier geht.
Ich habe meine Rails-App, die meine Ansichten normal generiert. Ich habe etwas dynamischen Inhalt auf der Schnittstelle.
Ich möchte einen AJAX-Aufruf durchführen, JSON zurückgeben und die dynamischen Teile der Anwendung auffüllen. Ich würde dafür eine JS Templating Library verwenden.
Ich möchte keinen AJAX-Aufruf durchführen, Rails die Ansicht verarbeiten lassen und den gesamten HTML-Code zurücksenden. Ich möchte, dass die Antwort JSON ist, also weniger Verarbeitungs- und Verbindungszeit.
Das Problem ist, dass der HTML-Code, den ich dynamisch erzeuge, der gleiche HTML-Code ist, den ich beim Laden von Seiten durch Rails statisch erzeuge (denke an AJAX-Paginierung). Das HTML ist natürlich in meinen ERB-Dateien. Aber wenn ich mehr Inhalt erzeuge (zB Seite 2), kann ich offensichtlich nicht auf die ERB-Dateien zugreifen und muss den HTML-Code in einer JavaScript-Vorlagendatei duplizieren.
Gibt es eine Lösung, die es mir erlaubt, meine Ansichten zwischen Rails und JS zu teilen? (Ich verstehe, es ist ein wenig peinlich zu versuchen, ERB mit JS-Rendering zu mischen ... Schleifen, Bedingungen usw.)
Begnügen sich die Leute normalerweise damit, HTML zu rendern und es über die Leitung zu senden? Oder führen sie ungeschicktes JavaScript beim Laden der Seite aus, um mit JS-Vorlagen zu rendern?
Ich bin in der Vergangenheit auf dasselbe Problem gestoßen. Ich konnte es mit Moustache lösen: Ссылка Zu der Zeit gab es keine einfache Möglichkeit, Schnurrbart mit Rails einzurichten, also musste ich etwas programmieren zusammen. Es sieht so aus, als ob es hier eine Lib gibt: Ссылка
Aktualisierung: Sieht so aus, als gäbe es jetzt ein nettes Juwel namens stache: Ссылка
Tags und Links javascript ruby-on-rails templates