我们如何使用$transitions
取消状态更改以提示用户保存?以前的 ui-router 版本曾经在回调中有一个 event
,可以通过 event.preventDefault()
停止,但这个事件似乎已经消失了。
我在 Controller 中使用此代码:
var onTransitionStartOff = $transitions.onStart({}, function($transitions)
{
if ($scope.itemTracker.hasChanged()) {
$scope.itemTracker.askExitConfirm().then(function () {
onTransitionStartOff();
var toState = $transitions.$to();
$state.go(toState);
}, function () {});
return $q.reject(null);
}
onTransitionStartOff();
});
它工作得很好,但由于被拒绝的 promise ,它在控制台中留下了一条错误消息。
我查看了stateService.ts,但没有看到一些有趣的东西......
最佳答案
解决方案是,如果您想保持当前状态,则使用 false 解决 promise ;如果您想导航到新状态,则解决方案为 true。
return $q.resolve(false);
关于javascript - 如何使用 ui-router 1.0 防止 AngularJS 1.6 中的状态更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41787534/