如何实现angularjs基于条件的动态路由

how to do angularjs dynamic routing based on condtion?

本文关键字:条件 动态 路由 于条件 angularjs 何实现 实现      更新时间:2023-09-26

我有像登录,用户详情,商店,预订页面。一旦用户登录选择商店和移动到预订页面,而不输入用户详情。在预订页面onsubmit我想检查是否已经有用户详细信息,如果它不存在,我需要重定向到我的个人资料,一旦用户提交的详细信息再次需要重定向到预订页面。如果用户登录并提交userdetails属性并选择存储,我不希望页面重定向,我认为这里$location.path()将不工作

routes
angular
    .module('myaccount')
    .config(['$stateProvider',
        function($stateProvider) 
            $stateProvider
                .state('myaccount', {
					resolve:{
							"check":function($location)
								{ 
									
								}
							},
                    url: '/myaccount',
                    templateUrl: 'modules/myaccount/views/myaccount.html',
                    controller: 'MyaccountController'
                });
        }
    ]);

我很想知道如何在.resolve块中做到这一点

你可以用resolvecontroller的组合来做。

resolve: {
  checkUserDetails: function (user) {
    return user.details.submitted; /** some promise **/
  }
},
controller: function (checkUserDetails, $state) {
  if (!checkUserDetails) {
    $state.go('profile');
  }
}

确保在resolve.checkUserDetails中返回一个promise并将其注入控制器。


不幸的是,我不知道/还没有弄清楚如何在resolve块中做这样的事情(这将是bllimp awesome!)。

所以如果有人能想出如何做到这一点,我认为这是你最好的选择。

在此之前,应该没问题