我在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,但两者似乎都没有用。看到类似的问题,但无法弄清楚。
答案 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');
希望得到这个帮助。