2017-06-21 133 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; 
    } 

    ......... 
} 

我不知道为什么,但它工作。我想在文件名和所需的类声明之间有一个关系。

相关问题