如何使用条件路由在ui-router中正确重定向

时间:2016-04-14 08:13:31

标签: angularjs angular-ui-router

我在ui-router angular js中使用条件路由但似乎无法重定向: 代码:

app.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider

    .state('app', {
    url: '/app',
    abstract: true,
    templateUrl: 'templates/home.html'
  })


  .state('app.login', {
    url: '/login',
    views: {
      'menuContent': {
        templateUrl: 'templates/login.html'
      }
    }
  })

 .state('app.trial', {
    url: '/trial',
    views: {
      'menuContent': {
        templateUrl: 'templates/trial.html'
      }
    },
    resolve:{
      factory: checkRouting
    }


  });
 $urlRouterProvider.otherwise('/app/therapist');

var checkRouting= function ($q, $location,$state) {

    var deferred = $q.defer();


         if(1==1){
          $location.url('/');
          deferred.reject();

          // $state.go("app.login");

         }else{
              deferred.resolve(true);
         }


    return deferred.promise();

};

我尝试使用state.go以及location.url,但两者似乎都没有用。看到类似的问题,但无法弄清楚。

1 个答案:

答案 0 :(得分:1)

我认为您应该将$urlRouterProvider.otherwise('/app/therapist');移到.state之外。

  .state('app.trial', {
    url: '/trial',
    views: {
      'menuContent': {
        templateUrl: 'templates/trial.html'
      }
    },
    resolve: {
      factory: checkRouting
    }
  });
  $urlRouterProvider.otherwise('/app/therapist');

希望得到这个帮助。