Как скрыть загрузочный модал, если в Angular4 нет содержимого внутри - PullRequest
0 голосов
/ 29 мая 2018

Я работаю в приложении для электронной коммерции Angular 4, в этом мне нужно скрыть модал начальной загрузки, когда в корзине нет товара.

, когда пользователь выбрал какой-то товар, добавленный в mycartмодальный экран. Пользователь может удалять товары из mycart.

В этом случае я хочу сделать это следующим образом: когда в mycart нет товара, если пользователь нажал на иконку mycart, он не должен открывать модальное окно.

В настоящее время открывается пустой модальный экран.

appComponent.html

<div class="modal fade modalstyle" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header headerHeight text-white " style="background:rgb(0, 0, 0);font-weight:bold">
        <h6 class="modal-title" id="exampleModalLabel">My Cart Items</h6>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <div *ngFor="let products of mycart;let i =index;">
          <div class="container col-sm-12">
            <div class="row">
              <div class="col-sm-4 paddingforimage">
                <img [src]="products['ITEM_IMAGE_PATH']">
              </div>
              <div class="text-info col-sm-6">
                <span>
                  <h6>{{products?.TOTAL_QTY}} &times; {{products?.ITEM_PRICE}} &#8377;</h6>
                </span>
                <span>
                  <h6>{{products?.ITEM_DESC}}</h6>
                </span>
                <span>
                  <h6>{{products?.TOTAL_AMT}} &#8377;</h6>
                </span>
              </div>
              <div class="col-sm-1 text-right">
                <button type="button" class="close closebtn" aria-label="Close" (click)="detele_My_Cart(products?.ITEM_CODE)">
                  <span aria-hidden="true" (click)="detele_My_Cart(products?.ITEM_CODE)">&times;</span>
                </button>
              </div>
            </div>
          </div>
          <hr>
        </div>
        <div class=" container row col-sm-12">
          <div class="col-sm-6">
            <strong>SHIPPING</strong>
          </div>
          <div class="col-sm-6 text-right">0 &#8377;</div>
          <hr>
          <div class="col-sm-6">
            <strong>TOTAL</strong>
          </div>
          <div class="col-sm-6 text-right">{{my_Cart_Total_Amount}} &#8377;</div>
        </div>
        <br>
        <div class="container row col-sm-12" id="wrapper">
          <button type="button" class="btn btn-success buttonSize" data-dismiss="modal" routerLink="/cartsummary">
            <strong>CHECK OUT</strong>
          </button>
        </div>
      </div>
    </div>
  </div>
</div>

icon

<i class="fas fa-cart-plus fa-flip-horizontal text-primary" (click)="get_My_Cart($event)" data-toggle="modal" data-target="#exampleModal" style="font-size:25px;cursor: pointer;"></i>

1 Ответ

0 голосов
/ 29 мая 2018

Простой, используйте директиву *ngIf?Показать модальное значение, когда значение mycart && mycart.length будет истинным1012 *

В шаблоне добавить #closeModalBtn

<button #closeModalBtn type="button" class="close" data-dismiss="modal">
    ...
 </button>   

В файле component.ts программно вызвать кнопку close

@ViewChild('closeModalBtn') closeModalBtn:ElementRef;

closeModalIfNoCart() {
  if (!this.mycart || !this.mycart.length)
     this.closeModalBtn.nativeElement.click();
}

detele_My_Cart(id) {
   // todo to remove
   //...
   closeModalIfNoCart();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...