Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

282
Visualizações
Cómo compartir componentes entre módulos con carga diferida

Estoy cargando mis módulos con carga diferida. Estoy en una situación en la que necesito usar una forma de un módulo en otro módulo.

Por ejemplo, existe el módulo de producto y el módulo de marca. Ambos se cargan en carga diferida. Pero quería hacer posible que el usuario registrara las marcas dentro del formulario del producto. Pero mi pregunta es que ambos módulos se cargan con pereza.

¿Realmente necesito cargar completamente los dos módulos? ¿O podría simplemente cargar solo el componente requerido?

mi carga perezosa de carga:

 const productRoutes: Routes = [ { path: 'product', loadChildren: 'app/admin/product/product.module#ProductModule', canLoad: [AuthGuard] } ]; const brandRoutes: Routes = [ { path: 'brand', loadChildren: 'app/admin/brand/brand.module#BrandModule', canLoad: [AuthGuard] } ];

mi componente:

 .... <div class="form-group"> <label for="exemplo">Create Name Product</label> <input type="text" name="name" [(ngModel)]="Product.name" #name="ngModel" > </div> <div class="form-group"> <label for="exemplo">Create Brand</label> <brand-form-component></brand-form-component> </div>

EDITAR

Creé el módulo compartido:

 import { NgModule } from '@angular/core'; import { FormComponent as FormBrandComponent } from '../../brand/brand-form/form.component' @NgModule({ imports: [ ], declarations: [ FormBrandComponent ], providers: [ FormBrandComponent ], exports: [ FormBrandComponent ], }) export class SharedModule { }

Y lo importé en los otros módulos:

Módulo de marca

 import { SharedModule }from '../shared/shared.module'; @NgModule({ imports: [ SharedModule, DialogModule, GrowlModule, Ng2PaginationModule, BrandRouting ], declarations: [ BrandComponent, ListComponent ], providers:[ BrandService ] }) export class BrandModule {}

módulo de producto

 import { SharedModule }from './shared/shared.module'; @NgModule({ imports: [ SharedModule, CurrencyMaskModule, DragulaModule, GrowlModule, DialogModule, Ng2PaginationModule, productRouting, ReactiveFormsModule ], declarations: [ ProductComponent, FormComponent, ListComponent ], providers:[ FormComponent, ProductService, BreadService, MarcaService, GradeService ] }) export class ProductModule { }

Pero está dando el siguiente error:

ingrese la descripción de la imagen aquí

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

La implementación actual de la carga diferida está en el nivel del módulo y es todo o nada. Si necesita compartir componentes entre los dos (que es lo que parece), entonces es posible que tenga un módulo compartido oculto que aún no haya identificado por completo. Por lo tanto, es muy posible que deba crear un nuevo módulo para albergar esos componentes/servicios compartidos y hacer que ese módulo se importe a los otros dos módulos con carga diferida.

Es su elección si ese nuevo módulo sería perezoso o cargado con entusiasmo, cualquiera de los dos funcionaría. (Dado que es una dependencia de los módulos del producto y de la marca, una vez que se carga cualquiera de ellos, también se cargará el nuevo módulo).

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda