首页 > 解决方案 > 如何在 Angular 中使用 jQuery hide boostrap4 Modal?

问题描述

我将 jquery, bootstrap 添加到包中。JQuery 工作正常,但模态功能不起作用。

ts&html

import $ from 'jquery';
export class AppComponent {
  name = 'Angular 5';

  closeModal() {
    $("#exampleModal").modal('toggle');
  }
}
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
      Launch demo modal
    </button>

<!-- Modal -->
<div class="modal fade" 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">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
              <span aria-hidden="true">&times;</span>
            </button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary" (click)="closeModal()">Save changes</button>
      </div>
    </div>
  </div>
</div>

错误

TypeError: jquery_1.default(...).modal is not a function

现场演示

https://stackblitz.com/edit/angular-jquery-modal

标签: jqueryangular

解决方案


要在 Typescript 中使用 jQuery,你必须这样做。该行必须放在所有导入之后。

//import $ from 'jquery';

 declare var $:any;

 export class AppComponent {
   name = 'Angular 5';

   closeModal() {
     $("#exampleModal").modal('toggle');
   }
 }

推荐阅读