导入特定模块时,Angular api前缀不起作用

时间:2019-11-18 21:46:12

标签: angular gallery lightbox angular8 angular-http-interceptors

api-prefix.interceptor.ts 可以正常工作,直到将“ GalleryModule”或“ LightboxModule”导入“ CampanhasModule”中。

我尝试过分别导入“ GalleryModule”或“ LightboxModule”,但是它们都不起作用。

这是导入模块之前的请求:

http://localhost:4200/api/campanhas?_page=1&_limit=1

这是导入模块后的请求:

http://localhost:4200/campanhas?_page=1&_limit=10

我的CampanhasModule.ts看起来像这样:

import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FlexLayoutModule } from '@angular/flex-layout';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { MaterialModule } from '@app/material.module';
import { SharedModule } from '@app/shared';
import { NgBusyModule } from 'ng-busy';
import { NgxPaginationModule } from 'ngx-pagination';
import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';
import { CampanhasRoutingModule } from './campanhas-routing.module';
import { CampanhasEditorComponent } from './editor/campanhas-editor.component';
import { CampanhasFiltroComponent } from './filtro/campanhas-filtro.component';
import { CampanhasListagemComponent } from './listagem/campanhas-listagem.component';
import { CampanhasApiService } from './service/campanhas-api.service';
import { LightboxModule } from '@ngx-gallery/lightbox';
import { GalleryModule } from '@ngx-gallery/core';

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    SharedModule,
    FlexLayoutModule,
    MaterialModule,
    RouterModule,
    CampanhasRoutingModule,
    PerfectScrollbarModule,
    NgxPaginationModule,
    NgBusyModule,
    LightboxModule,
    GalleryModule.withConfig({ loadingMode: 'indeterminate', loadingStrategy: 'preload' })
  ],
  declarations: [CampanhasListagemComponent, CampanhasEditorComponent, CampanhasFiltroComponent],
  providers: [CampanhasApiService]
})
export class CampanhasModule { }

我想知道为什么这些模块从我的请求中删除了“ / api”前缀。

有人有同样的问题吗?!

谢谢。

这是组件方法:

obterListagemCampanhas(pagina: number, dto?: FiltroListagemCampanhaDto) {
    this.paginacao.currentPage = pagina;

    this.busy$ = this.busy$.concat([
      this.campanhasService.obterListagemCampanhas(pagina, dto).subscribe({
        next: result => {
          this.campanhas = result;
        }
      }),
      this.campanhasService.obterListagemCampanhasTotalItems(dto).subscribe({
        next: result => {
          this.paginacao.totalItems = result;
        }
      })
    ]);
  }

这是“ campanhasService”中的方法:

 obterListagemCampanhas(pagina: number, dto?: FiltroListagemCampanhaDto): Observable<CampanhaModel[]> {
    let queryString = this.obterQueryStringFiltroListagemCampanhas(pagina, dto);

    return this.httpClient.get(`${this.urlApiCampanhas}?${queryString}`).pipe(
      tap({
        error: error => {
          this.snackService.abrirVermelho(
            `Ocorreu um erro ao buscar as Campanhas, por favor, contate o administrador.`
          );
        }
      }),
      delay(CONSTANTES.API.DELAY),
      map(response => response as CampanhaModel[])
    );
  }

  obterListagemCampanhasTotalItems(dto?: FiltroListagemCampanhaDto): Observable<number> {
    let queryString = this.obterQueryStringFiltroListagemCampanhas(1, dto);

    let obs$ = Observable.create((observer: any) => {
      this.httpClient
        .get(`${this.urlApiCampanhas}?${queryString}`, { observe: 'response' })
        .pipe(
          tap({
            error: error => {
              this.snackService.abrirVermelho(
                `Ocorreu um erro ao buscar as agências, por favor, contate o administrador.`
              );
            }
          }),
          delay(CONSTANTES.API.DELAY),
          take(1)
        )
        .subscribe({
          next: (result: any) => {
            observer.next(+result.headers.get('x-total-count'));
            observer.complete();
          },
          error: error => {
            observer.error(error);
          }
        });
    });

    return obs$;
  }

0 个答案:

没有答案