2016-08-19 2 views
2

Dies ist mein Code:Warum wird die Angular2-Komponenteneigenschaft nicht auf meiner Seite angezeigt?

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

@Component({ 
    selector: 'my-app', 
    template: ` 
     <h1>{{title}}</h1> 
     <h2>{{secondTitle}}</h2> 
     <main-page></main-page> 
    ` 
}) 

export class AppComponent { 
    title = 'Lovely Jubbly'; 
    secondTitle: 'Bummer...' 
} 

Titel 'Lovely Jubbly' auf meiner Website angezeigt wird, aber secondTitle 'Schade ...' zeigt nicht. Der einzige Unterschied ist, wie ich diese Variablen initialisiert habe. Ich bin TypeScript und Angular2 noob, also könnte es ein offensichtlicher Fehler sein. Könnte jemand mich zu einigen Dokumenten verweisen, die dieses Verhalten erklären könnten?

Antwort

3

Maschinenschrift interpretiert Bummer... als Typ (zum Beispiel eine Zeichenfolge, die nur "Bummer..." sein kann). Wenn es zu JavaScript wird, wird es immer noch auf Null initialisiert.

Wenn Sie sich fragen, können diese Typen für bestimmte Enum-ähnliche Variablen nützlich sein. zB:

var trafficLightState:'RED' | 'GREEN' | 'YELLOW' = 'RED'; 
trafficLightState = 'Melon'; // ERROR! 
+2

Ohh ... vielen Dank. Ich denke, es gibt keinen anderen Weg als TypeScript-Cover zu lesen :) – Drag0

+2

Es ist so ein einfacher Fehler zu machen, ich mache es die ganze Zeit. Du könntest 'secondTitle: string = 'Bummer ...'' oder 'secondTitle = 'Bummer ...' tun, aber es ist leicht, das Gleichheitszeichen zu vergessen, besonders wenn die Hälfte deiner Zeit in JSON verbracht wird. –

Verwandte Themen