Angular 2错误('指令'类型'组件'中不存在)

时间:2016-11-10 23:09:56

标签: angular typescript data-binding components

我是Angular 2的初学者,我使用的是最终的Angular 2发行版。我有一个奇怪的问题。 这是我的 databinding.component.ts 代码:

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

import {PropertyBindingComponent} from './property-binding.component';
import {EventBindingComponent} from './event-binding.component';


@Component({
  selector: 'fa-databinding',
  templateUrl: 'databinding.component.html',
  styleUrls: ['databinding.component.css'],
  directives: [PropertyBindingComponent, EventBindingComponent]
})

这是我的 app.module.ts 代码的和平:

import { PropertyBindingComponent } from './databinding/property-binding.component';
import { EventBindingComponent } from './databinding/event-binding.component';

@NgModule({
  declarations: [
    AppComponent,
    OtherComponent,
    AnotherComponent,
    DatabindingComponent,
    PropertyBindingComponent,
    EventBindingComponent
  ]

此代码无效:

ERROR in [default] /home/tornado/work/first-app/src/app/databinding/databinding.component.ts:11:2 
Argument of type '{ selector: string; template: any; styles: any[]; directives: (typeof PropertyBindingComponent | ...' is not assignable to parameter of type 'Component'.
  Object literal may only specify known properties, and 'directives' does not exist in type 'Component'.

我该怎么办?!?!

2 个答案:

答案 0 :(得分:15)

directives已从组件中删除。 请参阅以下内容:https://stackoverflow.com/a/39410642/5487673

问题的解决方案只是从组件中删除directives属性。只要directives属性下列出的组件在NgModule级别声明,那么您应该是对的。

答案 1 :(得分:0)

我遇到了那个案子并解决了。 作为指令,您无需导入并将其插入特定组件。 你可以像这样使用它们。

首先,在app.module.ts上导入它们。 其次,将导入的指令添加到声明中。 然后他们会工作。