2017-06-21 73 views
0

我是Angular的新手。當我嘗試創建生產版本(ng build --prod)時出現錯誤。拋出的錯誤是遵循無法解析所有參數

ERROR在無法解決所有參數OpcionValor在C:/用戶/ Usuario /文檔/ global_workspace/hcdu_proyect/HCDU_FRONT/HCDU/src目錄/應用/ modulos/anamesis /病歷。 module.ts:(?,?) 。 ./src/main.ts中的錯誤 未找到模塊:錯誤:無法解析'C:\ Users \ Usuario \ Documents \ global_workspace \ hcdu_proyect'中的'./$$_gendir/app/app.module.ngfactory' \ HCDU_FRONT \ HCDU \ SRC」 @ ./src/main.ts 4:0-74 @多./src/main.ts

文件anamnesis.module.ts包含以下代碼:

import {NgModule} from '@angular/core'; 
import {CommonModule} from '@angular/common'; 
import {OpcionComboBox, OpcionComboBoxComplex} from '../interfaces/interfaces.module' 

@NgModule({ 
    imports: [ 
    CommonModule, 

    ], 
    declarations: [] 
}) 

export class OpcionValor implements OpcionComboBox { 

    constructor(private nombre: string, private valor: string) { 
    this.nombre = nombre; 
    this.valor = valor; 
    } 

    getEntityValor(): string { 
    return this.valor; 
    } 

    setEntityValor(valor: string) { 
    this.valor = valor; 
    } 
} 

export class OpcionValorObservacion extends OpcionValor implements OpcionComboBoxComplex { 
    observacion: string; 

    constructor(name: string, valor: string, observacion: string) { 
    super(name,valor); 
    this.observacion = observacion; 
    } 

    getEntityObservacion(): string { 
    return this.observacion; 
    } 

    setEntityObservacion(observacion: string) { 
    this.observacion = observacion; 
    } 
} 

export interface AnamnesisInterface { 
    getOpcionSeleccionadaPorNombre(nombre:string):OpcionValor; 
    setOpcionValorPorNombre(nombre:string, valor:string); 
    setOpcionValorObservacionPorNombre(nombre:string, valor:string, observacion:string); 
} 

我不確定爲什麼錯誤被拋出,如果我沒有在開發環境中的錯誤。請有人幫我解決這個錯誤?

回答

0

您的模塊需要兩個輸入參數,它們的構造函數都是string。很可能,Angular不知道如何構建它。我假設你的地方有一個頂級的AppModule或某些等效看起來與此類似:

@NgModule({ 
    imports: [ OpcionValor ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { 
} 

它需要注入的OpcionValor模塊,但不能因爲它不知道在什麼通過爲構造函數參數。

我認爲你可能需要做一些重新設計。​​和valor真的應該是OpcionValor的成員,還是屬於某個組件? OpcionValor應該是一個模塊,還是應該是一個組件?

+0

嗨米奇,感謝您的迴應。我可以解決這個問題,添加followig class delcaration「export class AnamnesisModule {}」。 ts文件被稱爲「anamnesis.module.ts」。我不知道爲什麼,但似乎有必要用名稱文件關於模塊的類聲明。你知道爲什麼嗎? –

+0

聽起來很有意思......很抱歉地說,但它可能只是其中一種情況,我需要查看整個代碼庫以瞭解發生了什麼。如果它正在工作,它正在工作。嗯。 – Mitch

0

我已經通過添加關於ts文件名的類聲明來解決了這個問題。 模塊文件被稱爲anamnesis.module.ts所以我不得不添加下面的類聲明:

export class AnamnesisModule { } 

所以,我的模塊代碼: 文件名:anamnesis.module.ts

import {NgModule} from '@angular/core'; 
import {CommonModule} from '@angular/common'; 
import {OpcionComboBox, OpcionComboBoxComplex} from '../interfaces/interfaces.module' 

@NgModule({ 
    imports: [ 
    CommonModule 
    ], 
    declarations: [] 
}) 

**export class AnamnesisModule { }** 

export class OpcionValor implements OpcionComboBox { 
    nombre: string; 
    valor: string; 

    constructor(nombre: string, valor?: string) { 
    this.nombre = nombre; 
    this.valor = valor; 
    } 
.................. 

} 

export class OpcionValorObservacion extends OpcionValor implements OpcionComboBoxComplex { 
    observacion: string; 

    constructor(name: string, valor?: string, observacion?: string) { 
    super(name,valor); 
    this.observacion = observacion; 
    } 

    ......... 
} 

我不知道爲什麼,但它工作。我想在文件名和所需的類聲明之間有一個關係。

相關問題