私は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'.
私は何をすべきか?!?!
directives
はコンポーネントから削除されました。次を参照してください: https://stackoverflow.com/a/39410642/548767
この問題の解決策は、コンポーネントからdirectives
属性を削除することです。 directives
属性の下にリストされているコンポーネントがNgModule
レベルで宣言されている限り、正しいはずです。
そのケースに遭遇して解決しました。ディレクティブとして、特定のコンポーネントにインポートしてプラグインする必要はありません。このように使用できます。
まず、app.module.tsにインポートします。次に、インポートしたディレクティブを宣言に追加します。その後、彼らは働いているでしょう。