angular-ui-router 1.0.x:event.preventDefault&event.defaultPrevented替代方案

Gar*_*eld 6 javascript angularjs angular-ui angular-ui-router angularjs-1.6

我刚刚更换了$stateChangeStart$transitions.onStart

$rootScope.$on('$stateChangeStart', function(e, ...){
     e.preventDefault();
     // other code goes here...
});
Run Code Online (Sandbox Code Playgroud)

$transitions.onStart({}, function(tras){
     // need a code equivalent to e.preventDefault
     // need a code to identify event.defaultPrevented 
     // other code goes here...

     // get parent states
     _o.util.getAncestorStates(toState.name, true).reverse()
        .forEach(function (state) {
           // certain condition to call event.preventDefault()

           if(event.defaultPrevented) {....}
     });
});
Run Code Online (Sandbox Code Playgroud)

我想,我们可以通过添加return $q.reject()来阻止转换,e.preventDefault()但我无法理解下面的代码return $q.reject()将如何执行.

另外,我该如何更换event.defaultPrevented

我认为应该做些什么,transition.promise但不清楚.

对不起,我无法理解官方文档 - https://ui-router.github.io/ng1/docs/latest/.任何人都可以帮我找到更好的解释或替换上面的代码吗?

The*_*ear 8

您可以根据您的逻辑选择以下两个选项之一:

  • 我用'$ q.reject`来表示第二点,它运作得很好 (2认同)