2016-04-14 166 views
2

我使用條件路由,但不能似乎重定向: 代碼:如何正確地在UI路由器重定向在UI路由器角度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

我想你應該移動$urlRouterProvider.otherwise('/app/therapist');.state的。

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

希望得到這個幫助。

+0

這是一個錯誤的編輯,而在計算器。我的代碼編寫代碼複製已經是你在你的答案中提到,仍然我得到錯誤 –

+0

是它仍然不能重定向或已其他錯誤?你有沒有嘗試'調試器;'? – DieuNQ