- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我刚刚将 $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/
当使用 Javascript 发出自定义事件时,defaultPrevented 属性始终为 false。这是一个显示此行为的简短示例: var event = new CustomEvent("my
执行以下测试时出现此错误: it('should call pauseAnimationInterval if in focus', inject(function(SearchBoxData, in
我只是在carasoul.js中查看这个引导Jquery代码。 ,我在理解 defaultprevented 和 PreventDefault 如何与自定义事件配合使用时遇到了一些小困难。看一下 Bo
我正在开发 Firefox 扩展,但我一直看到以下警告: Use of getPreventDefault() is deprecated. Use defaultPrevented instead.
我放了一个全局模态“加载中,请稍候”在应用程序中。每次都显示 或 被点击。这是通过分配 来实现的一个onclick onload 中的事件处理程序,以便在事件冒泡时执行: funct
我刚刚将 $stateChangeStart 替换为 $transitions.onStart $rootScope.$on('$stateChangeStart', function(e, ...)
我是一名优秀的程序员,十分优秀!