2015-01-05 196 views
3

我在我的應用程序中有一個重定向問題。這些是我的狀態提供商:登錄後重定向

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

$stateProvider 

.state('app', { 
url: "/app", 
abstract: true, 
templateUrl: "templates/menu.html", 
controller: 'AppCtrl' 
}) 

.state('app2', { 
url: "/app2", 
abstract: true, 
templateUrl: "templates/menu2.html", 
controller: 'AppCtrl' 
}) 

.state('app2.login', { 
url: "/login", 
views: { 
    'menuContent': { 
    templateUrl: "templates/login.html", 
    controller: 'LoginCtrl' 
    } 
} 
}) 

.state('app.profile', { 
url: "/profile", 
views: { 
    'profile' :{ 
     templateUrl: "templates/profile.html", 
     controller: "ProfileCtrl" 
    } 
} 
}); 
// if none of the above states are matched, use this as the fallback 
$urlRouterProvider.otherwise('/app2/login'); 
}); 

我AppCtrl是空的,這是我LoginCtrl:

testApplication.controller('LoginCtrl', function($scope, $location){ 
$scope.fbLogin = function() { 
    openFB.login(function(response) { 
    if (response.status === 'connected') { 
     // This runs on success 
     console.log('Facebook login succeeded'); 
     $scope.$apply(function() { $location.path('profile') }); 
    } else { 
      alert('Facebook login failed'); 
    } 
    }, {scope: 'email,publish_actions,user_friends'} 
); 
}; 
}) 

的問題是,我沒有得到登錄後重定向。但是,如果我改變

$urlRouterProvider.otherwise('/app2/login'); 

$urlRouterProvider.otherwise('/app/profile'); 

而且去手動「#/ APP 2 /登錄」登錄我重定向到的個人資料頁面。我該如何解決這個問題?

回答

7

嘗試

$state.go('app.profile') 

,而不是

$scope.$apply(function() { $location.path('profile') }); 

我希望這可以幫助別人了。