我正试图让Bootsrap的模态工作,但是当我点击按钮时,我得到的是一个黑屏,没有模态对话框出现,我期望它.我正在使用流星.
这是我的代码:
<div class="container"> <h2>Example of creating Modals with Twitter Bootstrap</h2> <div class="modal hide fade in" id="example" style="display: none; "> <div class="modal-header"> <a class="close" data-dismiss="modal">×</a> <h3>This is a Modal Heading</h3> </div> <div class="modal-body"> <h4>Text in a modal</h4> <p>You can add some text here.</p> </div> <div class="modal-footer"> <a class="btn btn-success" href="#">Call to action</a> <a class="btn" data-dismiss="modal" href="#">Close</a> </div> </div> <p><a data-toggle="modal" href="#example" class="btn btn-primary btn-large">Launch demo modal</a></p> </div>
我基本上从http://www.w3resource.com/twitter-bootstrap/modals-tutorial.php获得了代码用于测试目的.
解决方法
我有一个类似的问题.问题是Meteor和Bootstrap如何工作的根本区别. Meteor假设可以随时重新加载标记.如果任何实时变量发生变化,Meteor只会重新加载模板.另一方面,Bootstrap假定模板只加载一次,并在运行时使用javascript进行修改.
发生了什么是流星正在加载我的模态模板.在某些时候我点击某些东西,这会导致该模态出现在javascript中.但是,一瞬间,实时变量会更改,导致模板再次加载.由于模板隐藏了模态,因此它会覆盖刚刚尝试显示模板的javascript.
我通过将模态的内部放在与外部不同的模板中来解决这个问题.外部模板不响应任何实时变量,因此希望永远不会重新加载.
之前:
<template name="modal"> <div class="modal hide fade in" id="settings-modal" data-backdrop="false"> <div class="modal-header"> ... </template>
后:
<template name="modal"> <div class="modal hide fade in" id="settings-modal" data-backdrop="false"> {{> modalInner}} </div> </template> <template name="modalInner"> <div class="modal-header"> ... </template>