Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Agenda

  • Was ist Handlebars.js?
  • Was kann Handlebars.js?
  • Einführungs-Beispiel
  • Verwendung von TAGs
  • Aufbau
  • Beispiel
  • Vor- und Nachteile
  • Was ist Handlebars.js?

    Was kann Handlebars.js?

    Einführungs-Beispiel



    HTML
         <html>
              <body>
                   {{person}}
              </body>
         </html>
    
    JSON
         {
              person: [
                   {firstName: "Philipp", lastName: "Schramm"},
                   {firstName: "Christoph", lastName: "Bey"},
              ]
         }
    

    Verwendung von TAGs



    Aufbau


    Template:
    * {{ name }}
    * {{ age }}
    * {{{ company }}}

    JSON:
    {
    "name": "Christoph",
    "company": "<b>IBM</b>"
    }

    Output:
    * Christoph
    *
    * IBM

    Beispiel für Handlebars

    [...]       
       <script type='text/javascript' src="jquery.js"></script>
       <script type='text/javascript' src="handlebars.js"></script>
    [...]
       
    <script id="some-template" type="text/x-handlebars-template">
    {{#university}}
       <h2>People from {{ this.name }} in {{ this.city }}</h2>
    {{/university}}
            
    
    {{#each people}}
       <li><span style="font-weight:bold">{{ this.name }} </span></li>
          <li>Age: {{ this.age }} years</li>
          <li>Hometown: {{ this.city }}</li>
    {{/each}}
    </script>
    
    

    <script type="text/javascript" charset="utf-8">
        var data = { 
           people: [
             {name: "Philipp Schramm",age:"23",city:"Plankstadt"},
             {name: "Christoph Bey",age:"23",city:"Olpe"}],
           university:[
             {name:"DHBW",city:"Mannheim"}] 
        };
          
       var source = $("#some-template").html();
       var template = Handlebars.compile(source);
       $("#contentgoeshere").html(template(data));
    </script>
    [...]
            

    Hier fehlt was

    Was sind die Vor- und Nachteile?

    Vorteile



  • View ist ausschließlich im Handlebars.js-Template - also in dem dafür vorgesehenen Script-Tag - untergebracht

  • Keine HTML-Tags im JavaScript-Code

  • Weiterer Schritt: Auslagerung sowohl von JavaScript-, sowie Handlebars-Code komplett in eine eigene .js-Datei

  • Templates sind leicht zu erstellen, lesen und zu warten

  • Template muss nicht bei jeder erneuten Verwendung neu kompiliert werden (wichtig für Mobile Geräte)
  • Nachteile



  • Bei einfachen Webseiten zu komplexe Struktur (mehrere Script-Teile)

  • Bei Einsatz mehrerer Templates kann das Laden einer Webseite verlangsamt werden

  • Vielen Dank für Eure Aufmerksamkeit!

    Use a spacebar or arrow keys to navigate