Twitter bootstrap 第二次加载时,引导弹出窗口未显示

Twitter bootstrap 第二次加载时,引导弹出窗口未显示,twitter-bootstrap,bootstrap-modal,Twitter Bootstrap,Bootstrap Modal,我有一个引导模式如下。我正在使用ng show触发模态。当我第一次加载弹出窗口时,弹出窗口会出现;当我关闭弹出窗口并重新运行第二次时,弹出窗口不会出现,即使x.length为0 <div class="modal fade in" id="modal" aria-hidden="false" style="display: block;" role="dialog" ng-show="x.length==0" data-toggle="modal" data-target="#modal"

我有一个引导模式如下。我正在使用ng show触发模态。当我第一次加载弹出窗口时,弹出窗口会出现;当我关闭弹出窗口并重新运行第二次时,弹出窗口不会出现,即使x.length为0

<div class="modal fade in" id="modal" aria-hidden="false" style="display: block;" role="dialog" ng-show="x.length==0" data-toggle="modal" data-target="#modal" >  
                                            <div class="modal-dialog" >

                                      <!-- Modal content-->
                                      <div class="modal-content">

                                        <div class="modal-body" style="background-color: #428bca">
                                          <p ><font color="#FFFFFF">testing</font>
                                           <button type="button" class="btn btn-default" data-dismiss="modal" onclick="$('#modal').remove();">Close</button>
                                        </div>

                                      </div>

                                    </div>
  </div>

测试
接近

创建模式的方式似乎就是问题所在。如果您按照我在代码段中所示的方式创建模式,它将正常工作。data toggle=“modal”和data target=“#modal”需要位于触发模态的元素上,要关闭模态,只需data dismission=“modal”。可以使用ng show条件显示或隐藏触发器元素

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.x=[];
});

点击这里
测试

接近
我遇到了前面讨论过的同一个问题,第一次之后模式就不起作用了。只有刷新页面才允许该功能工作一次。在我的例子中,这是由于在html文件中引用js文件的方式(在@section Scripts下):

我有一个带有事件的按钮,可以通过index.js文件弹出模式:

$(function () {
    $("#add-person").on('click', function () {
        $('.modal').modal();
    });
});
我的HTML文件:

<button id="add-person" class="button btn-success">Add People</button>
...
<div  class="modal fade" tabindex="-1" role="dialog">
 ...
</div><!-- /.modal -->
...
@section Scripts {
    <script src="js/index.js"></script>
}
添加人
...
...
...
@节脚本{
}
注意非完全限定 “js/index.js”参考。当我将此更改为:

“/js/index.js”即使在第一次之后,一切都很好


这是因为为查找index.js文件而构造的URL只是将js/index.js附加到当前位置,即/home/index/js/index.js,而不是将其重新路由到根目录,如/js/index.js。在第一次尝试时,它在根目录下工作,因此附加js/index.js指向js文件的准确位置。一旦程序通过第一轮模式,它就已经路由到/home/index,因此附加/js/index(如/home/index/js/index.js)没有指向有效路径,因此它无法找到启动模式的js代码。

onclick中的$('#modal')。remove()将从DOM中删除模式。这是你的本意吗?如果您只想在不将其从DOM中删除的情况下删除它,那么只需要数据disclease=“modal”。此外,data toggle=“modal”和data target=“#modal”必须位于触发该模态的元素上,但不确定为什么将其置于模态本身上。@ami91 data disclose没有关闭弹出窗口。我确实试过了。检查我的答案,寻找使用引导模式的可能方法。您将看到,我所需要消除的模态是data dismise=“modal”属性。我没有任何按钮来触发模态。我必须检查结果,而网页加载和弹出的成功。这就是为什么我选择了ng show选项,但它似乎有一些问题。@Kiran检查我的更新答案,说明您的用例。模态加载时无需单击按钮,可以很好地解除。每次用代码重新加载页面时,模式都会出现。它不起作用。我遇到与ng相同的错误-show@Kiran然后添加一个指向JSFIDLE的链接或显示您正在做什么的代码段,这样我可以进一步帮助您。如果没有这些,我不知道你是否做得对。它不起作用的原因是因为有监视范围。如果范围不变,则不会触发弹出窗口。我可能很傻,但您知道如何从范围中取消对特定变量的跟踪吗