2012-04-13 14 views
3

Was ich möchte erreichen:um Lenker Zuhören machen

  • nach einer Vorlage binden gemacht wird, bilden einer Schleuder hinzufügen einreichen
  • bevor eine Vorlage gemacht wird, entfernen Sie den Spinner falls vorhanden

Ich denke, es wäre einfach zu erreichen, wenn es eine Möglichkeit geben würde, um das Rendering von Handlebars zu binden. Ich habe noch keine Hinweise gefunden, dass es möglich wäre.

Die Art und Weise, wie ich versuche, dies zu lösen, ist möglicherweise nicht der richtige Weg, also fühlen Sie sich frei, andere Mittel vorzuschlagen.

Es ist eine Single-Page-App mit Davis für Routing und jQuery für DOM-Manipulation.

Antwort

2

Das erste Problem der Bindung an Formular senden konnte mit jQuery on handler$(document).on("submit", "form", function(event) { ... }); gelöst werden. Das funktioniert für alle Formulare, wenn sie an das DOM angehängt werden.

Erstellen Sie für den Rendering-Teil ein kleines jQuery-Plug-in, das den .html()-Aufruf und triggers ein Ereignis umschließt. Binden Sie dann das Inhaltselement, um darauf zu hören. Z.B. $("#content").bind("render", function() { /* REMOVE SPINNER */ }); und $("#content").render(/* WHATEVER IT TAKES TO GET HTML OUT OF HANDLEBARS */);. Und schließlich das Plugin:

(function($) { 
    $.fn.render = function(htmlString) { 
    var selector = this; 
    selector.html(htmlString); 
    selector.trigger("render"); 
    }; 
})(jQuery); 

Ich habe einen fiddle den letzteren Fall zu demonstrieren (ohne Lenker).