2016-08-16 46 views
0

我有一個$ state.go調用,它在兩個Factory HTTP Post調用之後運行,它們重定向到一個Dashboard-style頁面。然而,關聯的模板文件並沒有加載,實質上是加載了一個白頁。此時刷新會導致整個頁面加載。

我不清楚這是什麼原因,因爲路由器中的設置與我在其他頁面中看到的設置一致。我附上了下面的代碼。

//pertinent router code 
app.config(function($stateProvider, $urlRouterProvider) { 
    $stateProvider 

    .state('login', { 
    url: "/login", 
    templateUrl: "js/users/templates/login.html", 
    controller: 'LoginController' 
    }) 

    .state('dashboard', { 
    url: '/dashboard', 
    views: { 
     'menuContent' :{ 
     abstract: true, 
     templateUrl: 'js/users/templates/dashboard.html', 
     controller: 'DashboardController' 
     } 
    } 
    }) 

//Segment from LoginController fired by form submit 
usersService.usersFactory.authenticate(UserData).then(function successCallback(resp) { 
    if (resp !== undefined) { 
    $scope.go("dashboard"); 
    } else { 
    //Not a valid login 
    } 
}); 
+0

在你的路由中保持'cache:false'作爲一個屬性而不是你的問題將被解決。例如:'.state('login',url:「/ login」 –

回答

0

$state.go$scope.go 請使用您的控制器下面的代碼。

usersService.usersFactory.authenticate(UserData).then(function successCallback(resp) { 
    if (resp !== undefined) { 
    $state.go("dashboard"); 
    } else { 
    //Not a valid login 
    } 
}); 
1

據我可以告訴有您的片斷兩個問題

狀態定義

views: { 
    'menuContent' :{ 
     abstract: true, 
     templateUrl: 'js/users/templates/dashboard.html', 
     controller: 'DashboardController' 
    } 
} 

您設置的屬性abstract: true在您看來,這是錯誤的地方設置它,它應該是狀態定義的一部分。此外,如果將抽象狀態設置爲抽象將引發異常,因爲抽象狀態不能直接導航。我的建議是將您的財產從您的州中移除,因爲您顯然不需要它。

您可以在ui-router docs

一種抽象狀態將永遠不會被直接激活閱讀更多關於抽象的行爲,但可以提供 繼承屬性,將其共同的孩子的狀態。

國家重定向

usersService.usersFactory.authenticate(UserData).then(function successCallback(resp) { 
     if (resp !== undefined) { 
     $scope.go("dashboard"); 
     } else { 
     //Not a valid login 
     } 
    }); 

你引用$scope.go當它應該是$state.go

相關問題