wie kombinieren angular2 mit jinja2 Vorlagen und Kolben

Ich bin erste Schritte auf dem Eckigen 2 nach viel Erfolg mit Angular 1. Ich folgte sowohl die Quickstart und die Tour der Helden tutorials und alles funktioniert wie ein Charme.

Den lite server gekickt wird ausgeschaltet, ich sehe tsc läuft im watch-Modus und ich habe sogar BrowserSync ist angeschlossen. Super!!!

Jedoch, ich müssen beginnen, die Dinge ein bisschen mehr Reale Welt.

Anstelle der Verwendung von lite-server, wie bekomme ich alle diese arbeiten mit einem Kolben dev oder gunicorn server, dienen die erste index.html Datei als erbracht jinja template?

Geben das Fläschchen dev-server eine sehr näive versuchen, ich im Grunde kopieren Sie den Inhalt des Beispiels index.html aus dem tutorial in mein jinja template, dann laufen npm run tsc:w und schließlich feuern meine Flasche dev-server und das beste hoffen. Dinge kompilieren in Ordnung. Aber im browser sehe ich Probleme:

angular2-polyfills.js:332 Error: SyntaxError: Unexpected token <
    at ZoneDelegate.invoke (http://127.0.0.1:5000/static/node_modules/angular2/bundles/angular2-polyfills.js:332:29)
    at Zone.run (http://127.0.0.1:5000/static/node_modules/angular2/bundles/angular2-polyfills.js:227:44)
    at http://127.0.0.1:5000/static/node_modules/angular2/bundles/angular2-polyfills.js:576:58
Evaluating http://127.0.0.1:5000/app/main.js
Error loading http://127.0.0.1:5000/app/main.js`

Blick auf die Täter transpile main.js Datei ich sehe:

(function(System, SystemJS, require) {<!doctype html>
<html>
<head lang='en'>

So, ja, das ist nicht gonna Arbeit...klar meine Verkabelung ist drunter und drüber.

Gibt es eine Menge schwarze Magie geht weiter mit den shims, die polyfills, reactive extensions, systemjs, angular2 selbst, und dann werfen in den tsc-und lite-server. Zugegeben, ich habe nicht alle diese unten noch und es wird einige Zeit dauern, aber ich bin der Hoffnung, um mein Projekt in einem sauberen Zustand ziemlich schnell.

(Ich bin nicht dagegen, mit lite server (BrowserSync ist ein nettes extra) in Entwicklung so lange, wie ich ihn konfigurieren, um den proxy die real-Kolben-server, die zurückkehren wird der render-jinja-templates.)

Update

Hier ist der eigentliche template-index-Datei mit einigen kleinen änderungen, die ich gemacht habe:

<!doctype html>
<html>
  <head lang="en">
    {% block head %}

    <meta charset="utf-8">

    <title>Angular 2 QuickStart</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">    
    <link rel="stylesheet" href="styles.css">
    <!-- 1. Load libraries -->
    <!-- IE required polyfills, in this exact order -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>   
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <!-- 2. Configure SystemJS -->
    <script>
      System.config({
        packages: {        
          app: {
            format: 'register',
            defaultExtension: 'js'
          }
        }
      });
      System.import('app/main')
            .then(null, console.error.bind(console));
    </script>

    {% endblock %}
  </head>
  <!-- 3. Display the application -->
  <body>
    {% block content %}{% endblock %}

    <my-app>Loading...</my-app>

    <script>
      (function(globals) {
        this.MyConfig = {
          staticDir: '{{ config["STATIC_DIR"] }}'
        };
      }(this));
    </script>
  </body>
</html>
  • Sie besser zu einer Quelle der Vorlage.
  • sichere Sache. guter Punkt...ich habe den template-code der Frage.
  • I ' TS komisch, Sie haben den HTML-Code in die main.js. Es sollte in der Ausgabe von "localhost:NNN" oder was auch immer Sie verwenden für die Zustellung des Dokuments. Ich denke, es kann verbunden werden mit den reactive extensions (ist es RreactiveJS?). Versuchen Sie diese deaktivieren?
  • richtig, es ist seltsam. wenn ich kommentiere einfach das System.config() und System.import () - code der html wird serviert, wie man erwarten würde, und natürlich nichts passiert. Die main.js Datei mit dem HTML-ich weiß wirklich nicht, warum, noch wie Sie zu Debuggen. Diese Datei ist nur einige ätherisch-Datei, die existiert nicht wirklich irgendwo auf dem Dateisystem, also bin ich nicht sicher, wie Sie Sie Debuggen, wie es generiert wird.
InformationsquelleAutor lostdorje | 2016-04-04
Schreibe einen Kommentar