如何将数据传递给模态以使用bootstrap4.6动态构造模态

Posted

技术标签:

【中文标题】如何将数据传递给模态以使用bootstrap4.6动态构造模态【英文标题】:how to pass data to modal to dynamically construct modal using bootstrap4.6 【发布时间】:2022-01-15 05:08:50 【问题描述】:

最近我转向 adminLTE3(使用 bootstrap 4.6)并将其用作 Tornado 的前端框架。我遇到了模态问题。 在旧版本的adminLTE(使用bootstrap 3.3)中,我可以为modal动态生成内容,代码如下:

<a href="/some/path" data-toggle="modal" data-target="#mymodal">click here to generate modal conetent</a>

<div class="modal fade" id="modal-default">
        <div class="modal-dialog">
          <div class="modal-content">
             <!-- content here will be generated by tornado using the above link '/some/path' --> 
         </div>
   </div>
</div> 

龙卷风处理程序代码:

@route("/some/path")
class SomeHandler(tornado.web.RequestHandler):
   def get(self):
      self.render("modal/test.html", msg="hello")

模板文件test.html如下:

<div class="modal-header">
  <h4 class="modal-title">Default Modal</h4>
</div>
<div class="modal-body">
  <p> msg </p>
</div>
<div class="modal-footer justify-content-between">
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  <button type="button" class="btn btn-primary">Save changes</button>
</div>

但是当我点击链接时,modal没有加载成功,是的,主页变暗了但是modal没有出现。

同样的方法在adminLTE(使用bootstrap3.3)上也能很好地工作,所以我不知道发生了什么,没有错误信息,bootstrap3.3和4.6中的modal有什么重要的变化吗?提前致谢。

如果我把所有的模态内容直接放到HTML文件中就可以正常工作了,也就是说bootstrap4的模态功能没问题吧?只是想知道为什么模态内容不能动态呈现。

在添加了一些调试信息后,我发现bootstrap 4 modal在点击时似乎抑制了超链接的触发。由于我没有找到 Tornado 处理程序对 '/some/path' 的调用,因此模态没有出现,因为模态仅包含一个框架,其中没有内容,实际上触发了模态(主页成为有点暗)。所以这里的问题是为什么当我点击它时链接没有触发 Tornado 处理程序来处理它?在引导程序 3 上,我确信链接将被触发并导致 Tornado 处理程序处理 /some/path。

【问题讨论】:

【参考方案1】:

我找到了原因: 远程加载方法在引导程序 4 中已弃用。

This option is deprecated since v3.3.0 and has been removed in v4. We recommend instead using client-side templating or a data binding framework or calling jQuery.load yourself.

引导文档: https://getbootstrap.com/docs/3.4/javascript/#modals-options

一个类似的问题: Bootstrap 4 with remote Modal

希望这对遇到同样问题的人有所帮助。

【讨论】:

以上是关于如何将数据传递给模态以使用bootstrap4.6动态构造模态的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据传递给 Modal ionic 2

vue js将数据传递给组件

Laravel 5.3 将数据传递给 Modal 以编辑评论

从 tableviewcontroller 将数据传递给父 viewcontroller

将数据传递给模态:Property/method props undefined & TypeError: Cannot read property product of undefined

如何将数据传递给 ASP.NET MVC 中的模式视图