2017-12-25 15 views
1

Uncaught Error: Type FileValueAccessor is part of the declarations of 2 modules: moduleX and moduleY Please consider moving FileValueAccessor to a higher module that imports moduleX and moduleY. You can also create a new NgModule that exports and includes FileValueAccessor then import that NgModule in moduleX and moduleY.Filevalidationディレクティブの宣言は、二つの異なるモジュール

で働いていないとapp.moduleの両方のモジュールが、それは別のテンプレートのエラーを熟読います。

ERROR DOMException: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.

異なるモジュールでファイル検証を使用したコンポーネントを宣言すると、app.moduleで動作します。

なぜ私はapp.moduleでこれらのコンポーネントを宣言する必要がありますか?私はすでに魅惑的な負荷を使用して2つの異なるモジュールを持っています。

は、両方のモジュールからのインポート・エクスポート・コンポーネントを試みたが、それはあまりにも仕事をしたい:(

答えて

4

To solve this problem "Type FileValueAccessor is part of the declarations of 2 modules"

我々は

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 

import { FileValueAccessor } from './validation/file-control-value-accessor'; 
import { FileValidator } from './validation/file-input.validator'; 

@NgModule({ 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    ReactiveFormsModule, 
    HttpModule 
    ], 
    exports: [ 
    BrowserModule, 
    FormsModule, 
    ReactiveFormsModule, 
    HttpModule, 
    FileValueAccessor, 
    FileValidator 
    ], 
    declarations: [ 
    FileValueAccessor, 
    FileValidator 
    ], 
    providers: [ 
    ] 
}) 
export class SharedModule { } 

共有/ Shared.module.ts

を作成し、共有し、これをインポートする必要があります。 module.tsファイルをmoduleXとmoduleYにコピーすると、問題が解決されます。

関連する問題