Angularjs:ui-路由器模型 window 到 return 到以前的状态,无需重新输入

Anguarjs: ui-router modal window to return to previous state, without re-entering it

使用 angularjs 和 ui-router,在我的主要状态之上,我想打开一个模态 window,它将覆盖它。 模态 window 需要:

  1. 覆盖主要状态而不改变它
  2. 当关闭模态window时,它需要在不重新进入的情况下揭开主状态(例如,不改变滚动位置、表单输入值等)。

如何做到这一点?

首先,我假设您使用的是 Angular 模态库,例如 http://mgcrea.github.io/angular-strap/#/modals#modals 或类似库?

关于 UI-Router,这取决于您的具体要求,但通常您不需要为弹出窗口创建单独的 UI 状态。如果事实上你发现你这样做了,那么可以考虑使用 UI 状态定义的 onEnter 方法来显示你的弹出窗口,或者从状态的控制器激活它。

然后,一旦您的模态 window 正常工作,您就可以设置它的样式,使其完全覆盖视口。类似于以下 CSS 的内容可能会满足您的第一个要求:

.modal {
    position: absolute;
    top: 0;
    left: 0;
    right:0;
    bottom: 0;
}

根据定义,模态不会影响它背后的内容 - 所有状态都应该保持不变 - 所以只要你的模态实现是合理的(使用一个好的库!)那么你的第二个要求应该会自动满足。