是否存在与Bootstrap数据切换等效的OnShow事件?

时间:2016-05-02 22:13:02

标签: knockout.js twitter-bootstrap-3

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

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

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

这样可以正常工作,但视图模型在渲染视图之前已准备好,因此将选区静态滚动到视图中会失败。

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

所以有一个问题:如何检测数据切换使用data- *属性使对话框可见?

我知道

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

但这是一个表单引擎,而且UI非常动态,因此管理事件订阅会很糟糕。

1 个答案:

答案 0 :(得分:0)

据我所知:不,没有可用的data-属性。虽然,几乎没有确凿的证据,modal.js source code并没有提及任何特殊的&#34; data-&#34;我不知道的事情。

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