如何根据condtion做angularjs动态路由?

时间:2015-07-12 09:50:13

标签: javascript angularjs angular-ui-router

我有登录,用户详细信息,商店,预订等页面。登录用户登录选择商店并移动到预订页面而不输入userdetails.in预订页面onsubmit我想检查用户是否已经在那里,如果它不在那里我需要重新定向到我的个人资料,一旦用户再次正确提交详细信息需要重定向到预订页面。如果用户登录并提交了userdetails propery并选择商店那段时间我不想要页面重定向我想这里$ 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'
                });
        }
    ]);




1 个答案:

答案 0 :(得分:0)

我很想知道如何在.resolve

中完全执行此操作

您可以使用resolvecontroller的组合来完成此操作。

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

确保在resolve.checkUserDetails中返回承诺并将其注入控制器。

不幸的是,我不知道/还没有想到如何在resolve块中做这样的事情(这将是一团糟 awesome !)。

所以如果有人能想出怎么做,我会说这是你最好的选择。

在那之前,这应该就好了