Angular UI Bootstrap - 模态框第一次点击不弹出

5
我正在尝试创建一个用于登录/注册表单的模态框,并希望创建可重复使用的内容。我找到了这篇博客文章,其中介绍了如何制作一个指令:(链接)。我结合了 angular-ui-bootstrap 的文档来制作我的模态框,它确实可以工作,但是第一次单击按钮时,模态框无法弹出。 我可以在 Batarang 中看到作用域被创建,但没有任何弹窗。之后的点击可以正常工作,如果我有两个按钮,则无论我首先按哪个,都不起作用,然后另一个可以正常弹出。
我编写了一个网页演示 (链接) 来展示这个问题。我使用了模板等功能,因此添加了这些内容。您可以看到,单击“Register”或“Login”将不会弹出模态对话框,但是如果再次单击,模态对话框就会弹出。您还可以在首次单击时使用 Batarang 查看创建的作用域。
提前感谢您的帮助!
编辑: 我发现了一些更有用的信息:在单击链接时,将调用“scope.closeFormModal”。

你曾经让它工作了吗?我也遇到了同样的问题。我追溯到$modal.open().then代码。这似乎与动画事件触发的承诺有关。我认为这是一个错误,所以我使用angular strap代替它。 - Noogen
1
是的,我也是这么做的。 - user2411211
Angular-ui-bootstrap和bootstrap都试图捕捉点击事件,其中一个会捕捉第一次点击并将其传递给事件,但下一个也在等待点击... - Lilian A. Moraru
1个回答

0
尝试添加:
 scope.$watch(
    function () {
        return scope.formModal;
    },
    function (newData, oldData) {
        if (newData === oldData) {
            return;
        }
        if (newData) {
            $compile($element.contents())(scope);
        }
    });

将从$compile函数返回的链接函数链接起来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接