2017-05-22 2 views
1

Mein app.component.ts :Warum Angular2 sagt Komponente ist nicht definiert, obwohl es dort vorhanden ist?

import {Component} from 'angular2/core'; 
import {CoursesComponent} from './courses.component'; 

@Component({ 
    selector: 'my-app', 
    template: '<h1>Hello Angular 2</h1><courses></courses>', 
    directives: [CoursesComponent] 
}) 
export class AppComponent { } 

Mein courses.component.ts :

import {component} from 'angular2/core'; 

    @Component({ 
    selector : 'courses', 
    template : '<h2>Courses</h2>' 
    }) 
    export class CoursesComponent{ 

    } 

Obwohl alle Details gibt es bin ich nicht sicher, warum sagt noch chromebug, dass "Komponente ist nicht definiert".

Der Fehler ist:

ReferenceError: Component is not defined 
    Error loading http://localhost:3000/app/boot.js 
    at eval (courses.component.ts:3) 
    at execute (courses.component.ts:7) 
    at ensureEvaluated (system.src.js:3186) 
    at ensureEvaluated (system.src.js:3178) 
    at ensureEvaluated (system.src.js:3178) 
    at Object.execute (system.src.js:3304) 
    at doDynamicExecute (system.src.js:703) 
    at link (system.src.js:905) 
    at doLink (system.src.js:557) 
    at updateLinkSetOnLoad (system.src.js:605) 

Jede Hilfe wird sehr geschätzt.

+0

'directives' ist veraltet, wir verwenden' declaration' im ngModule jetzt :) – Alex

+0

@ AJT_82 Also, wie sollte ich den Code ändern? Und ist der Fehler fällig, den ich aufgrund von Abschreibungen sehe? –

+0

nur eine kurze Frage, verwenden Sie immer noch Winkel in seinen Beta-Stufen, weil Sie importieren von 'eckig2/Kern' statt von' @ eckig/Kern'. sogar Ihre Anweisungserklärung verwendet den alten Weg –

Antwort

2

directives in @Component() sind seit 2.0.0 beta.6 veraltet.
registrieren sie in @NgModule() statt

@Component({ 
    ..., 
    directives: [CoursesComponent] 
}) 

Sie es

@NgModule({ 
    declaration: [CoursesComponent], 
    ... 
}) 
1

In courses.component.ts hinzufügen müssen haben Sie die Zeile nächste Code:

import {component} from 'angular2/core'; 

Und es sollte be

import {Component} from 'angular2/core'; 

Sie verwenden @Component, das nicht aufgelöst werden konnte, wenn Sie es nicht importieren.

Verwandte Themen