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:"max88@gmail.com"};

    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:"max88@gmail.com"};

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

Aber ich bekomme diesen Fehler in der Chrome-Konsole:

Uncaught TypeError: Cannot read property 'split' of undefined

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`;

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.