是否可以在全局配置某些内容,以便每次输入新路由时都会检查前一个路由是以/ modal开头还是不是不刷新控制器,只需从堆栈中删除顶层模式?Angular-UI路由器,如果来自/模态路由,则不会刷新
我想我可以通过reloadOnSearch和使用搜索参数来实现这一点,但是之后我必须设置整个网站上的每条路线来设置reloadOnSearch,因为网站上的任何路线都可能启动模式,因此这是不可取的。
任何帮助真的不胜感激。
是否可以在全局配置某些内容,以便每次输入新路由时都会检查前一个路由是以/ modal开头还是不是不刷新控制器,只需从堆栈中删除顶层模式?Angular-UI路由器,如果来自/模态路由,则不会刷新
我想我可以通过reloadOnSearch和使用搜索参数来实现这一点,但是之后我必须设置整个网站上的每条路线来设置reloadOnSearch,因为网站上的任何路线都可能启动模式,因此这是不可取的。
任何帮助真的不胜感激。
简单角路线,你可以这样做:
yourApp.run(function($rootScope, $location){
$rootScope.$on('$routeChangeStart', function(evt, next, current) {
// next: The next URL to which we are attempting to navigate
// current: The URL that we are on before the route change
if (current == 'modal1'){
evt.preventDefault();
}
});
})
为了调整这angular ui
,只是改变$routeChangeStart
到相关的一个($stateChangeStart
,我认为)。
这很接近,但问题是,如果用户从模态1移动到新状态(但还没有倒退),则默认操作将被阻止。这只有在用户退后或模式被解雇时才需要工作。 – jonhobbs
我认为这是合理的把你的状态配置在这里 –
为什么你要通过路由器,如果你只是想关闭模式? – illiptic
当我从/ state1到/ modal1然后到/ modal2时,我希望URL更改并且后退按钮可以回到历史记录中的前一个状态。但是,当你回到/ modal1时,它应该关闭第二个模态,然后当你回到/ state1时它应该关闭第一个模态。这一切都不应该重新载入已经在模态下愉快地坐着的state1。 – jonhobbs