web-dev-qa-db-ja.com

Angular 2 Error( 'directives'はタイプ 'Component'に存在しません)

私は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'.

私は何をすべきか?!?!

9
Mahdi Ta

directivesはコンポーネントから削除されました。次を参照してください: https://stackoverflow.com/a/39410642/548767

この問題の解決策は、コンポーネントからdirectives属性を削除することです。 directives属性の下にリストされているコンポーネントがNgModuleレベルで宣言されている限り、正しいはずです。

15
Simon K

そのケースに遭遇して解決しました。ディレクティブとして、特定のコンポーネントにインポートしてプラグインする必要はありません。このように使用できます。

まず、app.module.tsにインポートします。次に、インポートしたディレクティブを宣言に追加します。その後、彼らは働いているでしょう。

0
smartworld-dm