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

278
Views
Cómo hacer una sola solicitud HttpParams() nueva validando si hay devolución de datos

Tengo una función que cuando se carga el componente, devuelve datos específicos de un determinado parámetro (por ejemplo: /app/items) y los muestra en un globo de información, pero si accedo a una ruta secundaria (por ejemplo: /app/items/ create) o (ej: /app/items/1/view) Necesito hacer una validación para ver si hay datos informativos en esta ruta para mostrar, pero si no, necesito mostrar la información del parámetro anterior (ej. : /aplicación/elementos) . Logré crear esta función a continuación que cumple con esto, pero con una solicitud dentro de otra, que creo que no es la más adecuada. Así que estoy tratando de refactorizar para que solo se realice una solicitud que valide estos parámetros. También se debe considerar que si la ruta tiene números, debe filtrarse y devolver una matriz con solo las cadenas antes de realizar la combinación ('/'), como puede ver allí en el constructor. Soy nuevo en el área, así que estoy tratando de encontrar algunos antecedentes para refactorizar esta función.

 public information: InformationList | any public isLoading:boolean = true error: any; showError: boolean = false public currentPageUrl = null; public output = null other: any; constructor( public screenInfoService: ScreenInfoService, public loaderService: LoaderService, public router: Router ) { this.currentPageUrl = this.router.url.split("/").filter((item: any) => { return isNaN(item) }) } load() { this.output = this.currentPageUrl.join("/"); let params = new HttpParams(); params = params.set('orderBy', 'id'); params = params.set('search', `path:${this.output}`); params = params.set('searchFields', `path:ilike`); params = params.set('searchJoin', 'and'); this.screenInfoService.getAll(params).subscribe( success => { if (success.length === 0) { let output2 = null output2 = this.currentPageUrl.slice(0,2).join("/"); params = params.set('orderBy', 'id'); params = params.set('search', `path:${output2}`); params = params.set('searchFields', `path:ilike`); params = params.set('searchJoin', 'and'); this.screenInfoService.getAll(params).subscribe( success => { this.information = success }, error => { this.error = 'MSG.T224'; this.showError = true; } ) } else { this.information = success } }, error => { this.error = 'MSG.T224'; this.showError = true; }); } ngOnInit(): void { this.load()

}

about 4 years ago · Juan Pablo Isaza
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!