2016-02-22 41 views
6

Ich versuche Angular 2 zu lernen, nach vielen Fehlermeldungen habe ich endlich die Routen funktioniert und ich kann die Komponente anzeigen, die ich will. Jetzt möchte ich meine Homepage-Komponente zeigen, und ich möchte, dass diese Komponente eine Navbar-Komponente enthält.Component nicht Rendern Angular 2 Typescript

Home.ts:

import {Component, View} from 'angular2/core'; 
import {Navbar} from './navbar/navbar' 

@Component({ 
    selector: 'home' 
}) 

@View({ 
    templateUrl: '/app/home/home.html' 
}) 

export class Home { 

    constructor:(public navbar: Navbar) { 
    } 

} 

home.html:

<p>NICE!</p> 
<navbar></navbar> 

navbar.ts:

import {Component, View} from 'angular2/core'; 

@Component({ 
    selector: 'navbar' 
}) 

@View({ 
    template: ` 
    <ul> 
    <li>This is the navbar</li> 
    </ul> 
    ` 
}) 

export class Navbar{ 
} 

Die Homepage angezeigt wird, aber der Tag <navbar></navbar> gerade bleibt, wenn i inspiziere es. Was mache ich falsch?

Antwort

11

Wenn Sie die navbar Komponenten wollen, müssen Sie es in dem directives Attribute der übergeordneten Komponente hinzuzufügen, nicht in dem Konstruktor, etwa so:

@Component({ 
    selector: 'home', 
    templateUrl: '/app/home/home.html', 
    directives: [ Navbar ] 
}) 
export class Home { 
    constructor() { 

    } 
} 
+0

Dank! Dies ist in der Tat die Antwort für diese Frage, aber ich fürchte, das wirft mich in den nächsten Fehler :(. Jetzt gibt mein Router Probleme wieder. –

+0

Gern geschehen! Wirklich? Was ist der Fehler? –

+1

Es scheint meine Navbar nicht kompiliert, neu kompiliert und funktioniert jetzt wie ein Zauber! Danke! –

Verwandte Themen