0

是否可以全局配置一些东西,以便每次输入新路由时检查前一个路由是否以 /modal 开头,如果是,则不刷新控制器,只需从堆栈中删除顶部模式?

我想我可以通过 reloadOnSearch 和使用搜索参数来实现这一点,但是我必须设置整个站点上的每条路由来设置 reloadOnSearch,因为站点上的任何路由都可以启动模式,所以这是不可取的。

任何帮助将不胜感激。

4

2 回答 2

1

你试过这个吗?

$rootScope.$on('$stateChangeStart', 
function(event, toState, toParams, fromState, fromParams){ 
     //codes
})
于 2015-09-28T13:19:47.177 回答
0

在简单的角度路线中,您可以这样做:

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我认为)。

于 2015-09-28T13:49:19.107 回答