如何通过单击父级中的按钮打开子级中的bootstrap 5模式,而无需在angular中安装ng bootstrap

vwkv1x7d  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(323)

我在父组件中有一个按钮,单击它我想打开子组件中的一个模态。我正在我的项目中使用Bootstrap5。由于一些限制,我不想安装ngx引导。
当我将数据bs目标和数据bs切换属性添加到按钮并具有 <child></child> 父组件中的示例。但是,在打开模块之前,我需要做一些验证。
我如何实现这一点。

hmae6n7t

hmae6n7t1#

此外,要安装引导,请安装@types/bootstrap

npm install --save @types/bootstrap

然后,您可以使用typescript控制模态。例如

<!--in the button I use template reference-->
  <button type="button" class="btn btn-primary" (click)="show(modal)">
    Launch demo modal
  </button>
<!--see the template reference-->
<div #modal class="modal fade" tabindex="-1" >
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
          <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
        </div>
        <div class="modal-body">
          ...
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
          <button type="button" class="btn btn-primary">Save changes</button>
        </div>
      </div>
   </div>
</div>

和in.ts

import {Modal} from 'bootstrap' //<--import Modal

  show(modalElement){
    const modal=new Modal(modalElement);
    modal.show();
  }

或者使用viewchild

@ViewChild('modal') modalRef
  show(){
    //see that using ViewChildren you use nativeElement
    const modal=new Modal(this.modalRef.nativeElement);
    modal.show();
  }

由于您的孩子具有模态,请在孩子中使用模板引用变量(例如。 #modal )所以你可以做父母

<button type="button" (click)="show(child.modal)">
    Launch demo modal
  </button>
  <child #child></child>

  //in this case we need use "nativElement"
  show(modalRef){
    const modal=new Modal(modalRef.nativeElement);
    modal.show();
  }

lightning 战

相关问题