gpt4 book ai didi

angular-ui-bootstrap - 如何在解决问题的同时关闭/关闭模态?

转载 作者:行者123 更新时间:2023-12-05 07:45:30 24 4
gpt4 key购买 nike

我正在寻找一种方法来取消 Angular-UI Bootstrap 模式的解析并阻止它打开。 dismissAll 方法不起作用,因为模态实例仅在解析完成后才添加到模态堆栈。

我有一个网站,模态框在路线更改时打开和关闭。如果在路线更改期间调用 dismissAll 以关闭任何旧模态,它不会影响仍在解析的模态。所以你来到了新的路线,但旧的模式在它的 resolve 完成后仍然弹出。

最佳答案

就目前情况而言,无法取消 ES6 和 $q promise 。可以引用this question了解更多信息。

tl;博士 Bluebird allows promise cancellation

如果你真的需要它,你可以add bluebird to angular .

如果您仍然想使用普通的 ol'$q,这就是我会做的

  1. 将当前状态(如果使用 ui-router)或路由(如果使用 angular router)传递给模态。
  2. 当您需要呈现模态模板时,将当前状态与提供的状态进行比较。
  3. 如果它们不相等则丢弃模态

modalInstance 对象公开了一个 rendered promise ,它将在模态完成渲染时运行,您可以放置​​ $uibModalStack.dismissAll();里面。

示例:

modalInstance.rendered.then(function (currentState) {
if (currentState !== $state.current) {
$uibModalStack.dismissAll();
}
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});

当然,您可以渲染模态后延迟加载,从而完全避免这种困惑。

关于angular-ui-bootstrap - 如何在解决问题的同时关闭/关闭模态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41552020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com