2017-06-15 12 views
1

私のメインコンポーネントのhtmlテンプレートでは、私がインポートしたモジュールのコンポーネントから要素を使います。私はこれを構築しようとすると、私は次のエラーを取得します。角型CLIプロダクションビルド(既知の要素ではない)

'df-dashboard-widget' is not a known element: 
1. If 'df-dashboard-widget' is an Angular component, then verify that it is part of this module. 
2. If 'df-dashboard-widget' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. 

そしてまた、このエラー:

ERROR in Template parse errors: 
Can't bind to 'options' since it isn't a known property of 'df-dashboard-grid'. 
1. If 'df-dashboard-grid' is an Angular component and it has 'options' input, then verify that it is part of this module. 
2. If 'df-dashboard-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. 
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. 

は私のHTMLテンプレートは次のようになります。

<df-dashboard-grid [options]="options"> 
    <df-dashboard-widget [item]="item" *ngFor="let item of dashboard"> 
    <ng-container *ngComponentOutlet="getComponent(item.tag); injector: getProvider(item)"></ng-container> 
    </df-dashboard-widget> 
</df-dashboard-grid> 

私はdf-dashboard-grid成分を有するモジュールをインポートして、このコンポーネントは、を輸出しています。 でも同じ問題が発生します。また、ngComponentOutletng-containerのプロパティではありませんが、私はCommonModuleをAngularからインポートしています。私の主なモジュールデコレータは次のようになります。コンポーネントデコレータと

@NgModule({ 
    declarations: [ 
    DashboardComponent 
    ], 
    imports: [ 
    BrowserModule, 
    CommonModule, 
    HttpModule, 
    DashboardGridModule 
    ].concat(Configuration.initialization.modules), 
    providers: [], 
    bootstrap: [DashboardComponent] 
}) 

使用されるモジュールは、次のようになります。

@NgModule({ 
    declarations: [ 
    DashboardGridComponent, 
    DashboardWidgetComponent, 
    DashboardGuideComponent, 
    DashboardPreviewComponent 
    ], 
    imports: [ 
    CommonModule 
    ], 
    exports: [DashboardGridComponent, DashboardWidgetComponent], 
}) 

このエラーは場合にのみ、本番モードで起こります。開発モードでは、すべてが正常に動作します。

+0

すべてのコンポーネントをエクスポート – alehn96

答えて

0

私はこの質問に対する答えを自分で見つけました。 Apperentlyそれはこれに関係しています。私の設定ファイルに

@NgModule({ 
    declarations: [ 
    DashboardComponent 
    ], 
    imports: [ 
    BrowserModule, 
    CommonModule, 
    HttpModule, 
    DashboardGridModule 
    ].concat(Configuration.initialization.modules), 
    providers: [], 
    bootstrap: [DashboardComponent] 
}) 

私は私が(理由の理由により)にも使用したモジュールの配列を持っています。デコレータ(または少なくともメインモジュールのデコレータ)では、有効なデータ型を返してもデコレータ内に関数を持たせることはできません。

ImportModuleという別のモジュールを追加してこの問題を解決しました。

@NgModule({ 
    declarations: [], 
    imports: Configuration.initialization.modules, 
    exports: Configuration.entryComponents, 
    providers: [], 
    bootstrap: [] 
}) 

これは、使用されているすべてのモジュールとコンポーネントを含むファイルを別の定数ファイルに保存しているため、これは私には役に立ちます。 Configurationには、使用されているすべてのモジュールの配列があり、entryComponentsは使用されているすべてのコンポーネントの配列です。メインモジュールでは、このモジュールをインポートします。

関連する問題