我正在为一个项目使用 durandal 和 Hot Towel 模板,但在显示一个非常简单的模式对话框时遇到了问题。
这是我的代码:
app.showMessage('Test Message');
对话框被添加到 DOM:
<div class="modalHost" style="z-index: 1002; opacity: 1;">
<div class="messageBox" data-view="durandal/messageBox" data-active-view="true" style="margin-top: -84.5px; margin-left: -895.5px;">
<div class="modal-header">
<h3 data-bind="html: title">Bleh</h3>
</div>
<div class="modal-body">
<p class="message" data-bind="html: message">Test Message</p>
</div>
<div class="modal-footer" data-bind="foreach: options">
<button class="btn btn-primary autofocus" data-bind="click: function () { $parent.selectOption($data); }, html: $data, css: { 'btn-primary': $index() == 0, autofocus: $index() == 0 }">Ok</button>
</div>
</div>
</div>
我看到对话框已添加,但未呈现为模式。它只是添加到我的页面底部(如下所示)。
有谁知道我做错了什么?我认为这可能是样式表问题,因为我正在使用模板,但是使用 bootstrap 网站上的最新版本的 bootstrap.js 和 bootstrap.css 并不能解决这个问题。
更新 1
当我将引导教程中的 HTML 复制到视图中并单击“启动演示模式”按钮时,对话框会正确打开。
<!-- Button to trigger modal -->
<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Modal header</h3>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary">Save changes</button>
</div>
</div>