是否可以全局配置一些东西,以便每次输入新路由时检查前一个路由是否以 /modal 开头,如果是,则不刷新控制器,只需从堆栈中删除顶部模式?
我想我可以通过 reloadOnSearch 和使用搜索参数来实现这一点,但是我必须设置整个站点上的每条路由来设置 reloadOnSearch,因为站点上的任何路由都可以启动模式,所以这是不可取的。
任何帮助将不胜感激。
是否可以全局配置一些东西,以便每次输入新路由时检查前一个路由是否以 /modal 开头,如果是,则不刷新控制器,只需从堆栈中删除顶部模式?
我想我可以通过 reloadOnSearch 和使用搜索参数来实现这一点,但是我必须设置整个站点上的每条路由来设置 reloadOnSearch,因为站点上的任何路由都可以启动模式,所以这是不可取的。
任何帮助将不胜感激。
你试过这个吗?
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
//codes
})
在简单的角度路线中,您可以这样做:
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
我认为)。