为什么Angular2说组件虽然存在但没有定义?

时间:2017-05-22 13:25:31

标签: angular

我的app.component.ts :

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

我的courses.component.ts :

   import {component} from 'angular2/core';

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

   }

尽管所有细节都存在,但我不确定为什么chromebug仍然说“组件未定义”。

错误是:

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)

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

directives以来,@Component()中的{p> 2.0.0 beta.6已被弃用 请在@NgModule()中注册

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

您需要将其添加到

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

答案 1 :(得分:1)

在courses.component.ts中,您有下一个代码行:

 import {component} from 'angular2/core';

它应该是

 import {Component} from 'angular2/core';

您正在使用@Component,如果您不导入它,则无法解析。