如何使ngfor始终从角的第一个位置开始

时间:2019-07-03 16:13:10

标签: angular carousel ngx-bootstrap

我有一个用于显示轮播的循环(我正在使用ngx-bootstrap轮播),问题是当我单击“查看详细信息”并且如果更改模式滑块的图像时,我将关闭模式并在其中打开另一个图像主轮播从打开前一个模式时的位置开始。我会解释:单击“查看详细信息”,然后打开2个轮播,在其中显示该房屋/公寓的所有图像,如果更改图像,例如,当我关闭该模式并打开时,它会转到第三个图像另一个模态,这个模态的旋律开始向我展示来自第三张照片的图像,好像循环不是从0开始,而是从我之前离开的地方开始。如何才能使模态内部的循环始终从向量的第一个值开始?如果这是简单的cliclo,那么一切都会变得更容易,则xq会启动始终在“ 0”中进行迭代的变量,但是该如何处理呢?然后我留下必须查看的代码,看看他们是否可以帮助我,我在其中花了很多时间而无法解决。

这是第一个轮播的代码,其中有“查看详细信息”按钮

<div class="container" >
  <div class="d-flex justify-content-center align-items-center">

      <div class="d-flex align-items-center justify-content-center">
        <div> <span class="text-hot">
          <b>HOT</b> </span> </div>
      </div>
      <div id="div-redondo" class="d-flex ml-2 align-items-center justify-content-center">
          <div class="text-hot align-middle">
              list
          </div>
      </div>
  </div>
</div>


<!-- Imagen de Pre-Carga-->
<div class="container-fluid d-flex justify-content-center" id="cont-preCarga" *ngIf="preCarga">
    <img src="../../assets/images/slider/spinner.gif">
</div>

<app-modal  [inmueble]="this.inmueble2" class="modal fade" id="exampleModal2" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> </app-modal> 


<carousel [itemsPerSlide]="itemsPerSlide"
          [singleSlideOffset]="singleSlideOffset"
          [interval]="false"
          [noWrap]="noWrap"
          [startFromIndex]="5">
  <slide class="col-md-2" *ngFor="let imagenPortada of this.hostlistService.inmuebles; let index=index" style="width: 500px;">
    
    <img src="{{url}}{{imagenPortada.id}}_{{imagenPortada.fotos[0]}}" alt="imagen de slide" style="display: block; width: 100%; height: 300px;">
    <!--<img src="../../assets/images/slider/logo.png" alt="imagen de slide" style="z-index: 10; width: 100%; height: 300px; position: absolute; left: 0; top:0;">-->
    <!-- <div class="carousel-caption">
      <h4>Slide {{index}}</h4>
    </div> -->
    
    <div class="row">
      <div class="col-12">  
        <p class="text-left text-precio"> <i class="fas fa-dollar-sign">
          </i> Precio: {{imagenPortada.precio | currency: 'USD':true:'1.2-2'}} 
        </p>
      </div>
    </div>
    <div class="row">
      <div class="col-12">  
        <p class="text-left"> <i class="fas fa-map-marker-alt"></i> Ubicacion: {{imagenPortada.precio | currency: 'USD':true:'1.2-2'}} 
        </p>
      </div>
    </div>
    <div class="row">
      <div class="d-flex col-12">
        <div class="cont-verDetalles d-flex justify-content-center">
          <button (click)="obtenerInfo(imagenPortada)" type="button" class="mt-2 btn btn-secondary" data-toggle="modal" data-target="#exampleModal2">Ver detalles</button>
        </div>
      </div>
    </div>
  </slide>
</carousel>

这是模态代码,在那里我有另一个旋转木马,这是我遇到的最大问题:

<!-- <h1> Tipo Inmueble: {{tipo}}</h1> -->
<!-- <div *ngIf="tipo!=''">   REVISAR CONDICION-->  

<div *ngIf="inmueble !== undefined">
  <div *ngIf="inmueble.tipo=='CA' || inmueble.tipo=='APTO' ; else opcion"> -->
  <div class="modal-dialog modal-lg" role="document">
    <div class="container-fluid">
    <div class="modal-content">
      <div class="modal-header">
        <div class="modal-title text-center" style="width: 100%;" role="alert"> <h3 class="texto-helvetica">{{inmueble.nombre}}</h3> </div>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      
      
      <div class="modal-body">
      <div class="row">
      <div class="col-md-12">
        <carousel [itemsPerSlide]="itemsPerSlide"
          [singleSlideOffset]="singleSlideOffset"
          [interval]="false"
          [noWrap]="noWrap"
          [startFromIndex]="5">
          <slide class="col-md-12" *ngFor="let imagen of inmueble.fotos;" style="max-width: 100%;">
              <!--<ngui-in-view>
                <img class="img-fluid" *ngIf src="{{url}}{{inmueble.id}}_{{imagen}}" alt="imagen de slide" style="display: block; width: 100vw; height: 300px;">
              </ngui-in-view> -->
          
            <img class="img-fluid" src="{{url}}{{inmueble.id}}_{{imagen}}" alt="imagen de slide" style="display: block; width: 100vw; height: 300px;">

          </slide>
        </carousel>
      </div>
      </div>
      <div class="row mt-4" id="fila-descripcion" >
        <div class="col-md-12" id="cont-descripcion">
          <h3 class="text-center texto-helvetica"><span class="texto-blanco">Descripcion</span></h3>
      </div>
      </div>
      <div class="row mt-4 pl-2 pr-2 pb-2">
        <div class="col-md-12" id="cont-descripcion">
          <p class="texto-helvetica text-justify">{{inmueble.descripcion}}</p>
        </div>
      </div>
      <div class="row"> 
        <div class="col-md-12"> 
          <p> <i class="fas fa-map-marker-alt fa-2x"></i> Ubicacion: </p>
        </div>
      </div>
      <div class="row mt-4"> 
        <div class="col-md-4 col-4 d-flex justify-content-center">
          <p class="text-center"> <i class="fas fa-bath fa-2x "></i> <br> Baños: {{inmueble.bano}} <p> 
        </div>
        <div class="col-md-4 col-4">
          <p class="text-center"> <i class="fas fa-hot-tub fa-2x"></i> <br> Baños de Servicio: {{inmueble.banoServicio}} <p> 
        </div>
        <div class="col-md-4 col-4">
          <p class="text-center"> <i class="fas fa-bed fa-2x "></i> <br> Habitaciones: {{inmueble.habitacion}} <p> 
        </div>
      </div>

      <div class="row mt-2"> 
        <div class="col-md-4 col-4 d-flex justify-content-center">
          <p class="text-center"> <i class="fas fa-ruler fa-2x "></i> <br> metros construidos: {{inmueble.metroConstruido}} <p> 
        </div>
        <div class="col-md-4 col-4">
          <p class="text-center"> <i class="fas fa-ruler fa-2x "></i> <br> metros de terreno: {{inmueble.metroTerreno}} <p> 
        </div>
        <div class="col-md-4 col-4">
          <p class="text-center"> <i class="fas fa-ruler fa-2x "></i> <br> Pago de Condominio: {{inmueble.condominio}} <p> 
        </div>
      </div>

      <div class="row mt-2 d-flex justify-content-center"> 
        <div class="col-md-4 col-4 d-flex justify-content-center">
          <p class="text-center"> <i class="fas fa-car fa-2x"></i> <br> estacionamientos: {{inmueble.estacionamiento}} <p> 
        </div>
        <div class="col-md-4 col-4">
          <p class="text-center"> <i class="fas fa-home fa-2x"></i> <br> antiguedad: {{inmueble.antiguedad}} <p> 
        </div>
      </div>

    </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
      </div>
    </div>
    </div>
  </div>
  <ng-template #opcion>
  <h1>Hello</h1>
  <h1>Hello</h1>
  <h1>Hello</h1>
  <h1>Hello</h1>
  <h1>Hello</h1>

</ng-template>
</div>
  

</div>

在此先感谢所有可以帮助我的人。问候!

1 个答案:

答案 0 :(得分:0)

这是使用 BsModalService example动态模态,在这里我从modalcarousel文档中复制粘贴代码。我注意到您使用了另一种模式的模式,但是由于您导入ngx-bootstrap时,您也可以使用它自己的模式api。

我为您理解的问题是,打开静态模式时,示例中轮播中的状态保持在相同的索引处。这不是期望的行为。使用API​​的这一部分,您只需在每次打开应用程序时在其根目录中动态填充一个新的模式组件,并在从DOM中关闭它时销毁它。

export class DemoModalServiceFromComponent {
  bsModalRef: BsModalRef;
  constructor(private modalService: BsModalService) {}

  openModalWithComponent() {

    this.bsModalRef = this.modalService.show(ModalContentComponent);
    this.bsModalRef.content.closeBtnName = 'Close';
  }
}
  

提示:您必须实现自己的轮播索引以及   首选轮播设置。