【问题标题】:Angular UI Bootstrap - modal doesn't pop on the first clickAngular UI Bootstrap - 模态不会在第一次点击时弹出
【发布时间】: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 捕捉第一次点击,让通过事件但下一个也在等待点击...

标签: angularjs angular-ui-bootstrap


【解决方案1】:

尝试添加:

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

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

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    相关资源
    最近更新 更多