Angular 2指令错误

Yas*_*nik 2 angular2-directives angular2-components angular

我正在使用最终的Angular 2发行版.我已经设置了官方网站angular 2 quickstart中提到的启动文件.在我的app.component.ts文件中,我制作了2个组件.代码如下所示: -

    import { Component, OnInit} from '@angular/core';

@Component({
    selector: 'demo',
    template:`
        <h2>Hi, demo !!</h2>
    `
})

export class DemoComponent implements OnInit{
    constructor(){}

    ngOnInit(){

    }
}

@Component({
  selector: 'my-app',
  template: `<h1>My First Angular 2 App</h1> 
    <demo></demo>
    `

})
export class AppComponent implements OnInit{ 
    constructor(){}
    ngOnInit(){

    }
}
Run Code Online (Sandbox Code Playgroud)

my-app的组件中,使用了指令选择器,它是一个数组.但编辑器(VS Code)显示错误.chrome控制台抛出错误,告诉 模板解析错误:'demo'不是已知元素: Chrome控制台

请帮我解决这个问题.谢谢

这是我的app.module.ts文件

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }   from './app.component';

@NgModule({
  imports: [BrowserModule],
  declarations: [AppComponent, DemoComponent],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

yur*_*zui 6

您必须在declarations模块的属性中定义组件.

app.module.ts

import { AppComponent, DemoComponent  }   from './app.component';

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent, DemoComponent ], <== here
  bootstrap:    [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

并将其从directives属性中删除AppComponent.它已被弃用.

app.component.ts

 directives: [DemoComponent] ,
Run Code Online (Sandbox Code Playgroud)