如何将Bootstrap模态组件与Phoenix集成?

时间:2017-06-29 14:35:19

标签: bootstrap-modal phoenix-framework

我不喜欢phoenix_html目前用于删除确认的阻止浏览器确认对话框。鉴于Phoenix默认使用Bootstrap,如何将Bootstrap modal component与Phoenix集成?

1 个答案:

答案 0 :(得分:1)

如果(并且只有)jQuery可用且存在合适的DOM元素,我已将此对话的委派实现为Bootstrap模态组件。

  1. 将此modal.js要点复制到您的Phoenix项目中的web/static/js文件夹。
  2. import "phoenix_html"
  3. 中注释掉web/static/js/app.js
  4. 在HTML模板中包含Bootstrap模式组件的HTML。 Bootstrap文档建议:

      

    始终尝试将模态的HTML代码放在顶层位置   您的文档,以避免影响模态的其他组件   外观和/或功能。

  5. 确保您的HTML包含顶级id="phoenix-bs-modal"上的<div class="modal">,并且模式中存在主要(确认)按钮<button class="btn-primary">

    <div class="modal fade" id="phoenix-bs-modal" tabindex="-1" role="dialog">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title">Modal title</h4>
          </div>
          <div class="modal-body">
            <p>One fine body&hellip;</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save changes</button>
          </div>
        </div><!-- /.modal-content -->
      </div><!-- /.modal-dialog -->
    </div><!-- /.modal -->
    

    通过删除链接上的data-confirm属性传入的消息将被转发到模式正文。

    这对我来说有助于获得连贯的布局。我正在把解决方案放在那里因为希望它对其他人也有用。