Contao-Camp 2024
Ergebnis 1 bis 6 von 6

Thema: Contao und Angularjs

  1. #1
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Frage Contao und Angularjs

    Hallo zusammen,

    wie kann man Angularjs in Contao verwenden?

    Mein Problem ist, dass man bei Angular für eine Ausgabe die gleiche Zeichenfolge wie beim Inserttag bracht {{ausgabe}}

    Hat das schon jemand versucht oder sogar gelöst?

    Besten Dank

    Gruss
    Steven

  2. #2
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    In Angular gibt es die $interpolateProvider api: http://docs.angularjs.org/api/ng.$interpolateProvider.

    Code:
    myModule.config(function($interpolateProvider) {
      $interpolateProvider.startSymbol('{[{');
      $interpolateProvider.endSymbol('}]}');
    });
    Damit hast du es in Angular auf "{[{ausgabe}]}" umgestellt.

    Allgemein solltest du dir jedoch genau yberlegen warum und ob du die Contao Templates mit denen von Angular mixen moechtest. Eigentlich solltest du via Angular nur maschinenlesbare Daten abrufen, wie z.B. json oder xml und nichts was durch die Contao Templating Engine "laeuft". Das ist doch der ganze Sinn einer web app.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  3. #3
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    Zitat Zitat von xtra Beitrag anzeigen
    Allgemein solltest du dir jedoch genau yberlegen warum und ob du die Contao Templates mit denen von Angular mixen moechtest. Eigentlich solltest du via Angular nur maschinenlesbare Daten abrufen, wie z.B. json oder xml und nichts was durch die Contao Templating Engine "laeuft". Das ist doch der ganze Sinn einer web app.
    Hilf mir doch bitte von dem Schlauch runter, auf dem ich gerade stehe: Wo, wenn nicht im Template eines
    Conto-Moduls würde ich Angular Code einbauen?

    Mein aktuelles Projekt: Conto Modul baut form aufgrund seiner Konfiguration und evtl. den Rechten des Users.
    Beim form-submit werden Daten via AJAX nachgeladen. Die würde ich gerne mit Angular auf der Seite an
    den richtigen Stellen einbauen. (Bsp.: eine Tabelle füllen).

    Mit Deinem Tip $interpolateProvider funzt das zwar erst mal -- fühlt sich wie Du beschreibst aber nicht sauber an.

  4. #4
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Standard

    Hallo xtra,

    danke für die Lösung! Funktioniert tiptop!

    Hilf mir doch bitte von dem Schlauch runter, auf dem ich gerade stehe: Wo, wenn nicht im Template eines
    Conto-Moduls würde ich Angular Code einbauen?
    Das würde mich auch interessieren.

    Gruss
    Steven

  5. #5
    Contao-Urgestein
    Registriert seit
    07.04.2010.
    Ort
    Stuttgart
    Beiträge
    2.733
    User beschenken
    Wunschliste

    Standard

    Naja, ich kann hier nicht von Angular+Contao reden, aber der Vorteil an JSON ist,
    dass es klein ist und platzsparent in der Übertragung.
    HTML an sich braucht keine Zeit um vom Server interpretiert zu werden.
    Jage ich jetzt das HTML durch den Parser braucht es Zeit.

    xtra meint glaube ich, dass man am Besten über einen JSON-Schnittestelle mit Angular direkt die Daten abholt, anstatt alles durchs Templating-System zu jagen,
    Inserttags zu ersetzen etc...

    Wenn ich euch helfen konnte könnt ihr euch gerne mal
    meine Amazon Wunschliste anschauen. Dankeschön.

  6. #6
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    Zitat Zitat von psren Beitrag anzeigen
    xtra meint glaube ich, dass man am Besten über einen JSON-Schnittestelle mit Angular direkt die Daten abholt, anstatt alles durchs Templating-System zu jagen, Inserttags zu ersetzen etc...
    So weit, so klar von meiner Seite. Aber -- das war das Problem im Originalpost -- Angular verwendet {{ und }} als Delimiter für die Ausgabe von Modellvariablen (ähnlich Twig). Wenn man also entsprechenden Angular-Code in einem Contao-Template stehen hat wird beim Rendern der Seite -- noch vor etwaigen AJAX-Calls, die JSON Daten liefern könnten -- das {{ foo }} von Conto als vermeintlicher Inserttag geparst und verschwindet damit.

    Das lässt sich ja wie von xtra beschrieben fixen. Ich hatte mich dann an den Thread dran gehängt weil ich auf Erhellung zu "ob du die Contao Templates mit denen von Angular mixen möchtest." gehofft hatte.

    Irgendwie muss das Angular Template ja ausgegeben werden um in den Browser kommen. Ich kann zwar alles in JS machen aber in einer typischen Angular Anwendung gibt es ja auch HTML Snippets und die kämen hier dann von Contao.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •