2017-11-07 2 views
0

Ich habe das Projekt auf die neueste Version von Angular 5 aktualisiert und nach einigen Versionsanpassungen ist es immer noch fehlgeschlagen. Also habe ich ein neues, neues eckiges Projekt basierend auf der aktuellen Version (@ angular/cli 1.5.0, @ angular/* 5.0.0) erstellt und damit begonnen, die Probleme aufzuspüren.Die Verwendung der String-Interpolation für den Component Decorator schlägt fehl

Es hat sich herausgestellt, dass z.B. Die Verwendung der String-Interpolation in einem Decorator wird nicht mehr erkannt. Außerhalb z.B. in einer console.log-output, es hat gut funktioniert.

ich versuchte es auf Standard-AppComponent generiert:

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

const name = 'app'; 

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: [`./${name}.component.css`] 
}) 
export class AppComponent { 
    title = 'app'; 

} 

Das Ergebnis ist eine große Ausnahme, wenn Sie feststellen, dass Winkel versucht zu sehen, die Ressourcen wie zu suchen:

src/./${name}.component.css .ts existiert nicht

Hat jemand einen Hinweis was hier schief gelaufen ist und/oder kann ich in die richtige Richtung zeigen?

Update: Nach einem response von der eckigen-Community, scheint es eher ein Problem für @ angular/cli/webpack.

Antwort

0

Dies liegt daran, dass der Typescript-Compiler nur den TS in JS aufbaut. Und nicht den TS ausführen. Zum Zeitpunkt der Kompilierung des Codes kennt der Compiler keine Laufzeitvariablen.

Sie können die String-Interpolation nur in den Teilen des Codes verwenden, die zur Laufzeit ausgeführt werden.

+0

Basierend auf Ihrer Antwort sollte es in der vorherigen Version 4 von eckig nicht funktionieren. Aber es tut. –

+0

Ich sehe, wie die Änderungen in den Release Notes von ng5 brechen. du solltest vielleicht @ angular/plattform-browser-dynamic hinzufügen Siehe hier: https://github.com/angular/angular/blob/master/CHANGELOG.md#breaking-changes –

+0

@ angular/plattform-browser-dynamic ist bereits definiert als eine Abhängigkeit, wenn eine neue, neue eckige Anwendung erstellt wird. Wie in diesem grundlegenden einfachen out-of-the-Box Beispiel Repro für dieses Problem zu sehen: https://github.com/thomassittig/angular5-string-interpolation-error –

Verwandte Themen