2016-08-07 4 views
1

Ich habe die Standard-Express-Anwendung generiert, die ich geändert habe, um die folgenden Zeilen in seiner app.js Datei zu haben.Routing Express zu ng2 ohne Vorlage Engine

app.set('views', path.join(__dirname, '/views')); 
app.engine('html', require('jade').renderFile); 
app.set('view engine', 'html'); 

im ./views Verzeichnis, ich hatte ursprünglich layout.jade, index.jade und error.jade. OK, soweit so gut. Wenn das Projekt ausgeführt wird, wird entweder das Index- oder das Fehlerlayout angezeigt.

Jetzt ... Ich möchte eine minimale angular2 Installation hinzufügen, mit der Absicht, ng2 eine 1-Seite-Anwendung zu verwalten, wo index.jade derzeit ist.

So habe ich legte einen app.component.ts:

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'my-app', 
    template: '<h1>My First Angular 2 App</h1>' 
}) 

export class AppComponent { } 

in und main.ts Datei:

import { bootstrap } from '@angular/platform-browser-dynamic'; 
import { AppComponent } from './app.component'; 
bootstrap(AppComponent); 

Dann änderte ich index.jade zu index.html und fügte hinzu:

<html> 
    <head> 
    <title>Angular 2 QuickStart</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="../public/stylesheets/style.css"> 
    <!-- 1. Load libraries --> 
    <!-- Polyfill(s) for older browsers --> 
    <script src="node_modules/core-js/client/shim.min.js"></script> 
    <script src="node_modules/zone.js/dist/zone.js"></script> 
    <script src="node_modules/reflect-metadata/Reflect.js"></script> 
    <script src="node_modules/systemjs/dist/system.src.js"></script> 
    <!-- 2. Configure SystemJS --> 
    <script src="systemjs.config.js"></script> 
    <script> 
     System.import('app').catch(function(err){ console.error(err); }); 
    </script> 
    </head> 
    <!-- 3. Display the application --> 
    <body> 
    <my-app>Loading...</my-app> 
    </body> 
</html> 

jedoch mit die HTML Template-Engine und m y new error.html und index.html Dateien, ich bekomme immer die Fehlerseite und nicht meine ng2 verwalteten Index angezeigt. Irgendwelche Ideen warum?

+0

Haben Sie das herausgefunden? Der folgende Vorschlag sagt ejs, aber ich möchte auch keine Template-Engine verwenden. Was ist der richtige Weg, um eine index.html Datei mit dem Winkel 2 Selektor zu bedienen? Damit kann ich das Frontend ohne irgendwelche seltsamen Fehler an Winkel 2 übergeben. Wie wenn ich die Seite auffrische usw. – wuno

Antwort

0

Die beste Option im Moment ist die Verwendung von ejs (engine) und konfigurieren Sie es, um HTML zu akzeptieren und zu rendern.

Code:

app.set ('Blick', path.join (__dirname, Ansichten '));
app.set ('View Engine', 'ejs'); // Vorlagen-Engine

app.engine ('html', require ('ejs'). renderFile); // turn engine to html verwenden

Hinweis: Alle Ihre Ansichten oder Vorlagen sollten .html Erweiterung