Angular UI Bootstrap - 模态不会在第一次点击时弹出

Posted

技术标签:

【中文标题】Angular UI Bootstrap - 模态不会在第一次点击时弹出【英文标题】:Angular UI Bootstrap - modal doesn't pop on the first click 【发布时间】:2013-05-18 02:38:04 【问题描述】:

我正在尝试为登录/注册表单制作一个模式,并想做一些可重复使用的东西,我遇到了this blog post,它通过制作指令来完成。我使用它以及 angular-ui-bootstrap 文档来制作我的模态。它确实有效,但是当我第一次单击按钮弹出模式时,它不起作用。我可以看到使用 Batarang 创建的范围,但没有弹出任何内容。随后的点击确实有效,如果我有 2 个按钮,无论我先按哪个,它都不起作用,之后任何一个都起作用。

我编了一个plnkr 来展示这一点。我正在使用模板等,所以我添加了这些。可以看到,按“注册”或“登录”不会弹出模态框,但是如果再次点击,模态框就会弹出。您还可以看到使用 Batarang 在首次按下时创建的范围。

提前感谢您的帮助!

编辑: 我发现了更多可能有用的信息。第一次点击链接时,scope.closeFormModal 被调用。

【问题讨论】:

这个工作有过吗?对我来说同样的问题。我将其追溯到 $modal.open().then 代码。它与在动画事件上触发的承诺有关。我把它归为虫子,改用角带。 是的,实际上我也是这样做的。 Angular-ui-bootstrap 和 bootstrap 都尝试捕捉点击,1 捕捉第一次点击,让通过事件但下一个也在等待点击... 【参考方案1】:

尝试添加:

 scope.$watch(
    function () 
        return scope.formModal;
    ,
    function (newData, oldData) 
        if (newData === oldData) 
            return;
        
        if (newData) 
            $compile($element.contents())(scope);
        
    );

链接从 $compile 函数返回的函数。

【讨论】:

以上是关于Angular UI Bootstrap - 模态不会在第一次点击时弹出的主要内容,如果未能解决你的问题,请参考以下文章

angular-ui-bootstrap model 模态框出现的位置怎么调整

如何在 Angular UI Bootstrap 中增加模态宽度?

Angular UI Bootstrap - 模态不会在第一次点击时弹出

在模态中编辑现有联系人(bootstrap-ui angular)

与 Bootstrap 模态一起使用时显示在模态后面的 Angular ui-select 选项

Angular Bootstrap 模态:未知提供者:$modalInstanceProvider