gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 05:14:21 25 4
gpt4 key购买 nike

我刚刚将 $stateChangeStart 替换为 $transitions.onStart

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

$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) {....}
});
});

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

另外,如何替换 event.defaultPrevented

我认为应该在 transition.promise 上做一些事情但不清楚。

很抱歉,我无法理解官方文档 - https://ui-router.github.io/ng1/docs/latest/容易地。谁能帮我找到更好的解释或替换上述代码?

最佳答案

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

  • angular-ui-router 1.0.3 开始,您可以使用 $transition.abort() .如果您必须在异步调用后中止状态更改,则选择更简洁。

    $transitions.onStart({}, function($transition) {
    $transition.abort();
    //more code...
    });
  • 此外,正如@tanmay 在评论中所说,您可以使用简单的return false 来取消它。这也适用于非稳定版本(1.0.0.beta 和 1.0.0.rc)。 ( Check it in ui-rooter docs )

    $transitions.onStart({}, function($transition) {
    //code ...
    return false;
    });

关于javascript - angular-ui-router 1.0.x : event. preventDefault & event.defaultPrevented 替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43888603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com