TypeScript - Angular: Mehrzeilige Zeichenfolge

75

Ich bin ein Angular 2-Anfänger und habe diesen Code in meinem geschrieben dev/app.component.ts:

import {Component} from 'angular2/core';

@Component({
    selector: 'my-app',
    template: '<h3 (click)="onSelect()"> {{contact.firstName}} {{content.lastName}}</h3>'
})
export class AppComponent {
    public contact = {firstName:"Max", lastName:"Brown", phone:"3456732", email:"[email protected]"};

    public showDetail = false;
    onSelect() {
        this.showDetail=true;
    }
}

Es funktioniert, wenn ich zum Browser "Max Brown wird angezeigt" gehe.

Jetzt möchte ich den Vorlagenteil in verschiedenen Zeilen wie folgt schreiben:

import {Component} from 'angular2/core';

@Component({
    selector: 'my-app',
    template: '<h3 (click)="onSelect()">
    {{contact.firstName}} {{contact.lastName}}<h3>'
})
export class AppComponent {
    public contact = {firstName:"Max", lastName:"Brown", phone:"3456732", email:"[email protected]"};

    public showDetail = false;
    onSelect() {
        this.showDetail=true;
    }
}

Aber ich bekomme diesen Fehler in der Chrome-Konsole:

Uncaught TypeError: Cannot read property 'split' of undefined
splunk
quelle
Beantwortet das deine Frage? Wie kann ich eine String-Interpolation in JavaScript durchführen?
Dour High Arch

Antworten:

187

Wickeln Sie den Text in `(Backticks) anstelle von einfachen Anführungszeichen ein ', dann kann er mehrere Zeilen umfassen.

var myString = `abc
def
ghi`;
Günter Zöchbauer
quelle
es funktioniert bei mir .... aber warum ist es nicht möglich mit dem üblichen '' wie in jeder anderen Sprache? zum Beispiel JS selbst ...
messerbill
3
Anscheinend können Sie normale Anführungszeichen verwenden . Stackoverflow.com/questions/805107/… . Backticks ermöglichen auch die Interpolation developer.mozilla.org/en/docs/Web/JavaScript/Reference/…
Günter Zöchbauer
5
Wie kann ich Leerzeichen und neue Zeilen ignorieren?
Sunil Garg
Entschuldigung, ich verstehe die Frage nicht. Warum sollten Sie sie überhaupt hinzufügen, wenn Sie sie nicht möchten? Ich verstehe nicht, welches Problem Sie lösen wollen.
Günter Zöchbauer
1
Das wäre das Gegenteil von dem, worum es in meiner Antwort geht. Ich denke, das würde erfordern'a b c' + 'd e f'
Günter Zöchbauer