您好我正在开发angularjs的网站。我正在使用ui-routing。我想在用户登录后重新加载状态。我有index.html和app.js.以下是我的app.js
var app = angular.module('RoslpApp', ['pascalprecht.translate']);
app.config(function ($stateProvider, $urlRouterProvider, $translateProvider, $translatePartialLoaderProvider)
{
$urlRouterProvider.otherwise('/HomePage');
$stateProvider
.state('Login', {
url: '/Login',
templateUrl: 'App/Registration/Login.html',
controller: 'Login'
});
});
app.controller('RoslpAppController', ['$scope', function ($scope) {
var cookieloginid = $cookieStore.get('LoginID');
if (cookieloginid != null) {
//This will reoload
var id = document.getElementById('ProfileDropdown');
id.innerHTML = $scope.ProfileDropdown = ' <ul>' +
'<li><a href="#/userProfile">User Profile</a></li>' +
'<li>test1</li>' +
' <li onclick="logout(event)">logout</li>' +
'</ul>';
$scope.dp == false;
}
以下是我的登录代码。
$http.post(url, sub).then(function (response) {
setTimeout(function () {
//Trigger or reload RoslpAppController controller
LoginSuccess(response); }, 1000);
}, function (error) {
setTimeout(function () { HideLoader(); }, 1000);
toastr.error($filter('translate')(error.data.msg));
});
登录成功后,我将获得登录ID,我将其存储在cookie中。在RoslpAppController控制器中,我想在登录时检查cookie是否存在。我可以知道如何做到这一点吗?谢谢。
答案 0 :(得分:0)
在登录POST调用后,您必须转换到从服务器获取成功响应的状态。
要转换为州使用 - $state.go("<statename>",{params},{reload : true})
如果您没有RoslpAppController
的任何州,请填一个。
OP评论后编辑:
.state('Roslp', {
url: '/Roslp',
templateUrl: 'App/Registration/View.html',
controller: 'RoslpAppController'
});
在templateUrl中,给出要在登录后加载的视图。
立即使用$state.go("Roslp",{params},{reload : true})
。