【问题标题】:Is there an OnShow event equivalent for Bootstrap data-toggle?是否有与 Bootstrap 数据切换等效的 OnShow 事件?
【发布时间】:2016-05-03 13:26:27
【问题描述】:

按钮控制模式对话框的可见性。这发生在表单引擎的上下文中,因此受控模式对话框由敲除绑定确定。

<button type="button" class="btn btn-primary" data-toggle="modal" 
        data-bind="attr: { 
          id: 'attachment' + Metadata.FormFieldID, 
          'data-target': '#attachment-dialog' + Metadata.FormFieldID 
        }">

对话框本身绑定到文件系统的视图模型。如果已经提供了一个值,它应该显示包含类别并预先选择指定的文档。

这可以正常工作,但视图模型是在视图呈现之前准备好的,因此将选择滚动到视图中静默失败。

我可以停止使用数据切换并显式控制对话框的可见性,但我想知道是否有任何方法可以检测到对话框已切换为可见,以便我可以触发代码将选择滚动到视图中。

那么问题来了:如何使用 data-* 属性检测到 data-toggle 已使对话框可见?

我知道

$('#myModal').on('shown.bs.modal', function (e) {
  // do something...
})

但这是一个表单引擎,UI 相当动态,因此管理事件订阅会很麻烦。

【问题讨论】:

    标签: knockout.js twitter-bootstrap-3


    【解决方案1】:

    据我所知:不,没有这样的data- 属性可用。不过,几乎没有确凿的证据,modal.js source code 没有提到任何我不知道的特殊“data-”事情。

    但是,我认为将引导模式与 knockoutjs 视图模型集成的惯用方式是通过 自定义绑定处理程序。参见例如this answerthis answer。您可能需要扩展这些解决方案来解决您的滚动引擎问题,但它会解决您的“UI [正在] 相当动态”的问题,因为 knockoutjs 处理事件订阅并帮助您进行清理.

    【讨论】:

    • 是的,我也翻遍了 modal.js,但运气不佳。我认为您对此以及绑定都是正确的。很好的阅读建议,谢谢。
    猜你喜欢
    • 2021-05-30
    • 2011-05-05
    • 2011-02-28
    • 2011-11-22
    • 2018-02-27
    • 2016-06-08
    • 2010-10-13
    • 1970-01-01
    相关资源
    最近更新 更多