2016-02-22 17 views
6

Próbuję nauczyć się Angular 2, po wielu komunikatach o błędach w końcu mam działające trasy i mogę wyświetlić żądany komponent. Teraz chcę pokazać mój składnik strony głównej i chcę, aby ten komponent miał komponent navbar.Komponent nie renderuje Angular 2 Maszynopis

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{ 
} 

Na stronie głównej wyświetla, ale tag tylko pozostaje <navbar></navbar> kiedy sprawdź to. Co ja robię źle?

Odpowiedz

11

Jeśli chcesz komponent navbar, trzeba dodać go do atrybutu elementu nadrzędnego directives, a nie w jej konstruktora, tak jak poniżej:

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

    } 
} 
+0

Dzięki! To jest rzeczywiście odpowiedź na to pytanie, ale obawiam się, że to rzuca mnie do następnego błędu :(Teraz mój router daje kłopoty ponownie –

+0

Nie ma za co! Naprawdę? Jaki jest błąd? –

+1

Wygląda na to, że mój navbar nie skompilowałem, skompilowałem go ponownie i teraz działa jak zaklęcie! Dzięki! –

Powiązane problemy