我是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'.
我该怎么办?!?!
答案 0 :(得分:15)
directives
已从组件中删除。
请参阅以下内容:https://stackoverflow.com/a/39410642/5487673
问题的解决方案只是从组件中删除directives
属性。只要directives
属性下列出的组件在NgModule
级别声明,那么您应该是对的。
答案 1 :(得分:0)
我遇到了那个案子并解决了。 作为指令,您无需导入并将其插入特定组件。 你可以像这样使用它们。
首先,在app.module.ts上导入它们。 其次,将导入的指令添加到声明中。 然后他们会工作。