Javascript 重定向到ngRoute$routeProvider解析中的其他路由
在我的应用程序中,我遇到了这样一种情况:基于某个条件,如果用户在控制器和视图加载之前访问某个路由(“/checkinsuccess”),则会运行一个函数,该函数使用routeProviders resolve属性检查某个标志是否为真。如果此标志为真,它将重定向到新路由。不幸的是,我试图重定向的初始视图和控制器(“/checkinsuccess”)似乎是在resolve属性中调用的函数完成之前加载的。这会导致问题,因为初始视图运行自动注销功能。有没有办法在初始路线加载之前运行检查,我想这就是resolve所做的?这是我的一段代码Javascript 重定向到ngRoute$routeProvider解析中的其他路由,javascript,angularjs,Javascript,Angularjs,在我的应用程序中,我遇到了这样一种情况:基于某个条件,如果用户在控制器和视图加载之前访问某个路由(“/checkinsuccess”),则会运行一个函数,该函数使用routeProviders resolve属性检查某个标志是否为真。如果此标志为真,它将重定向到新路由。不幸的是,我试图重定向的初始视图和控制器(“/checkinsuccess”)似乎是在resolve属性中调用的函数完成之前加载的。这会导致问题,因为初始视图运行自动注销功能。有没有办法在初始路线加载之前运行检查,我想这就是res
.when('/checkinsuccess', {
controller: 'thankuctrl',
templateUrl: 'views/MobileCheckin/checkin-success.html',
resolve: {
checkForWorkflowUpdates: function($location){
checkForWorkflowUpdates($location)
}
}
// check if workflow update has been made and load that route if true.
function checkForWorkflowUpdates($location){
var selectedForms = JSON.parse(sessionStorage.getItem('selectedForms'));
if (selectedForms) {
if(selectedForms.workersComp){
$location.path('/workerscomp');
} else if (selectedForms.motorVehical) {
$location.path('/autoaccident');
}
}
}
我使用resolve获取并构建注入控制器的模型。您为什么不能将
checkForWorkflowUpdates
逻辑添加到调用/checkinsuccess
的任何位置?我试过了,但在重定向之前,它会将初始视图闪烁一秒钟。此外,此路由还有几个不同的动态入口点,因此我无法将其添加到可能加载它的每个控制器中。不从函数返回任何内容。。。试着回复一个承诺,并相应地解决或拒绝。如果控制器被拒绝,它将不会加载感谢提示,知道这方面的好例子吗@夏列特夫