另一个组件内的Angular2引用组件

时间:2016-09-11 07:30:24

标签: angular reference components

我正在关注Angular2教程,我必须在主要组件中引用一个额外的组件。 我想从<里面的“CoursesComponent”中插入模板。课程>主要组件的标签。为此,我使用“指令:[]”,但它不起作用。我得到错误:'courses'不是一个已知的元素'。 指令不再用于此,我应该采用不同的方式吗?

App.component.ts

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

@Component({
  selector: 'my-app',
  template: '<h1>My first Angular2 app</h1><courses></courses>',
  directives: [CoursesComponent]
})

export class AppComponent {}

Courses.component.ts

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

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

export class CoursesComponent {}

1 个答案:

答案 0 :(得分:2)

  

注意在RC6中,您无需在 @Component中声明指令管道元属性

由于 AppComponent 使用 CourseComponent ,您必须在 @NgModule 的声明元数据中声明 CourseComponent ,如下所示

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }  from './app.component';
import {CoursesComponent} from './courses.component'
@NgModule({
  imports:      [ BrowserModule],
  declarations: [ AppComponent,CoursesComponent],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

注意:现在,您必须删除 @Component 中使用的指令元数据

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

@Component({
  selector: 'my-app',
  template: '<h1>My first Angular2 app</h1><courses></courses>',
  //directives: [CoursesComponent]        //<-----remove this from here
})

export class AppComponent {}