按钮控制模态对话框的可见性。这发生在表单引擎的上下文中,因此受控模式对话框由敲除绑定决定。
<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非常动态,因此管理事件订阅会很糟糕。
答案 0 :(得分:0)
据我所知:不,没有可用的data-
属性。虽然,几乎没有确凿的证据,modal.js
source code并没有提及任何特殊的&#34; data-
&#34;我不知道的事情。
但是,我认为将bootstrap模式与knockoutjs视图模型集成的惯用方法是通过自定义绑定处理程序。参见例如this answer或this answer。您可能需要扩展这些解决方案以使用滚动引擎解决您的问题,但它会解决您的问题&#34; UI [正在]而非动态&#34;,因为knockoutjs处理事件订阅并帮助您进行清理。