2017-10-31 9 views
1

私は現在、ビデオレッスン「の角2への完全なガイド」と一緒に以下のよ、と彼はコンポーネントをインポートする必要があるたびに、彼はまた、このようなディレクティブに追加して確認します: `ディレクティブのメタデータは、アングル2では不要ですか?

@Component({ 
selector: 'rb-recipe-list', 
templateUrl: './recipe-list.component.html', 
styleUrls: ['./recipe-list.component.css'], 
directives: [RecipeItemComponent] 
}) 

しかし、私が指示線を持っていなくても、それは私にとってはうまくいきます。私はすでにそのコンポーネントをインポートした場合でも、その点を確信していません。

答えて

0

少なくとも、現在の(4.4.6)バージョンでは不必要です。

@Component({ 
    changeDetection?: ChangeDetectionStrategy 
    viewProviders?: Provider[] 
    moduleId?: string 
    templateUrl?: string 
    template?: string 
    styleUrls?: string[] 
    styles?: string[] 
    animations?: any[] 
    encapsulation?: ViewEncapsulation 
    interpolation?: [string, string] 
    entryComponents?: Array<Type<any>|any[]> 
    preserveWhitespaces?: boolean 
    // inherited from core/Directive 
    selector?: string 
    inputs?: string[] 
    outputs?: string[] 
    host?: {[key: string]: string} 
    providers?: Provider[] 
    exportAs?: string 
    queries?: {[key: string]: any} 
}) 

...と​​のその欠如:

は現在meta-data descriptor of @Componentを参照してください。注目に値するおそらく

は、上記のリンクと同じドキュメントから:

[...]角度成分は、ディレクティブのサブセットです。

Furthermore

指令は、それが別の指示、コンポーネント、またはアプリケーションによって使用可能にするためにNgModuleに属していなければなりません。ディレクティブがNgModuleのメンバーであることを指定するには、そのディレクティブをそのNgModuleの宣言フィールドにリストする必要があります。

したがって、ディレクティブはNgModuleで宣言され、そのモジュール内で宣言されたすべてのコンポーネント、または遅延ロードされた子モジュールで使用できます。

+1

恐ろしい!私は何か重要なことを忘れていたと思った – Drewson

関連する問題