Как использовать data-target в разных компонентах?

#javascript #html #css #angular

#javascript #HTML #css #angular

Вопрос:

Я пытаюсь добавить модал из bootstrap в свой код и использую Angular2 (ровно 6) для интерфейсной части. Проблема в том, что кнопка, которую я использую для вызова модала, находится в другом компоненте, отличном от самого модала, поэтому она работает не так, как ожидалось.

В одном компоненте, в боковой панели, у меня есть эти строки кода:

 <li *ngIf="!userService.mainUser" data-toggle="modal" data-target="#login"  style="cursor: pointer">
    <a>
        <i class="mdi mdi-login"></i>
        <span class="hide-menu">Se connecter</span>
    </a>
</li>
  

Как вы можете видеть, у меня есть data-toggle="modal" и data-target="#login" в моем <li> , чтобы открывать мой модальный файл при нажатии.

Проблема в том, что мой модальный код находится в другом компоненте, входном:

 <div id="login" class="modal fade" role="dialog">
  <div class="modal-dialog modal-dialog-centered">

    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-title">
        <h1 style="margin-left: 15px">Se connecter</h1>
      </div>
      <div class="modal-body">
        <div class="form-group">
          <label class="form-control-label">Nom d'utilisateur</label>
          <input name="username" class="form-control" placeholder="Nom d'utilisateur">
        </div>

        <div class="form-group">
          <label class="form-control-label">Mot de passe</label>
          <input name="password" class="form-control" placeholder="Mot de passe">
        </div>
        <div>
          <input style="display: inline" type="checkbox">
          <label style="margin-left: 10px"> Rester connecté ?</label>
        </div>

        <button (click)="logIn()" [ngStyle]="{'background': appFade, 'color': getTextColor()}">Se connecter</button>

      </div>
    </div>

  </div>
</div>
  

Итак, когда я нажимаю на кнопку «Se connecter», она не открывает мой модальный, и я не знаю, как заставить это работать.

Я надеюсь, что мой вопрос понятен и что вы сможете мне помочь. Спасибо!

Ответ №1:

Вам нужно добавить селектор компонента в html, где находится ваша кнопка

     <li *ngIf="!userService.mainUser" data-toggle="modal" data-target="#login"  style="cursor: pointer">
    <a>
        <i class="mdi mdi-login"></i>
        <span class="hide-menu">Se connecter</span>
    </a>
</li>
<app-login-modal></app-login-modal>//this should coincide with the name modals selector name in your typescript file