почему PopOver перенаправить на просмотр? - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь использовать popover внутри карты с помощью lib: OpenLayer.Я могу использовать PopOver, это конец.Я добавляю к этому панель навигации и изображение и / или, но когда я щелкаю по вкладкам или «> / <» (из начальной загрузки карусели), это перенаправляет на другой вид, а не на другие вкладки и / или изображение </p>

 <div class="row m-auto text-center" id="templateES">
    <div class="col-12 bg-gradient princing-item red">
      <div class="pricing-divider">

        <ng-container
          *ngIf="ImagenTestMostrar && ImagenTestMostrar?.$imagenes && ImagenTestMostrar?.$imagenes.length > 0">
          <div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
            <div class="carousel-inner" id="carouselParkMp">
            </div>
            <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
              <span class="carousel-control-prev-icon" aria-hidden="true"></span>
              <span class="sr-only">Previous</span>
            </a>
            <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
              <span class="carousel-control-next-icon" aria-hidden="true"></span>
              <span class="sr-only">Next</span>
            </a>
          </div>
        </ng-container>

      </div>

      <ng-container *ngIf="ImagenTestMostrar">
        <ul class="nav nav-tabs" id="myTab" role="tablist">
          <li class="nav-item">
            <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home"
              aria-selected="true">Home</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" id="profile-tab" data-toggle="tab" href=".tab2" role="tab" aria-controls="profile"
              aria-selected="false">Profile</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" id="contact-tab" data-toggle="tab" href=".tab3" role="tab" aria-controls="contact"
              aria-selected="false">Contact</a>
          </li>
        </ul>

        <div class="tab-content" id="myTabContent">
          <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
            <div class="card-body bg-white mt-0 shadow">
              <ul class="list-unstyled mb-5 position-relative">
                <li><b>Precio: </b>{{ImagenTestMostrar?.$precio}} </li>
                <li><b>Tipo de cobro: </b> {{ImagenTestMostrar?.$unidad}}</li>
                <li><b>Tiempo de cobro: </b> {{ImagenTestMostrar?.$cantidad}} </li>
              </ul>
            </div>
          </div>
          <div class="tab-pane fade tab2" id="profile" role="tabpanel" aria-labelledby="profile-tab">div2</div>
          <div class="tab-pane fade tab3" id="contact" role="tabpanel" aria-labelledby="contact-tab">div3.</div>
        </div>
      </ng-container>
    </div>
  </div>

Машинопись:

map.on('click', (event) => {
      console.log(event);
      var feature = map.getFeaturesAtPixel(event.pixel);
      var element = popup.getElement();

      ($(element) as any).popover('dispose');

      if (feature != null) {
        console.log(element);
        var coord = event.coordinate;
        console.log(feature[0].values_);

        this.ImagenTestMostrar = new Imagen(feature[0].values_.attributes.datosPk);
        console.debug(this.ImagenTestMostrar);

        $(".imgDin").remove();
        for (let i = 0; i < this.ImagenTestMostrar.$imagenes.length; i++) {
          let carouserlItem = `<div class="carousel-item ${i == 0 ? 'active' : ''} imgDin">
                                <img class="d-block w-100" src="${this.ImagenTestMostrar.$imagenes[i]}" alt="First slide">
                              </div>`;
          console.log(carouserlItem);
          $(carouserlItem).appendTo("#carouselParkMp");
        }
        popup.setPosition(coord);
        //var element = popup.getElement();
        $(function () {
          ($(element) as any).popover({
            placement: 'left',
            content: function () {
              return $('#contentEs').html();
            },
            //template: template,
            html: true,
          });

          ($(element) as any).popover('show');
        });

      } else {
        console.debug("Es nulo!");
      }
    })

Пожалуйста, я новичок в веб-программировании, я не уверен, что если я буду практиковать мой код, я смогу сделать лучше.

...