Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

281
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!