我有这样的路线提供者
app.config(function ($routeProvider, $locationProvider){
$locationProvider.hashPrefix('');
$routeProvider
.when('/', {
templateUrl: 'login.html',
controller: 'loginCtrl'
})
.when('/home', {
resolve:{
"check":function($location, $rootScope){
if(!$rootScope.loggedIn){
$location.path('/');
}
}
},
templateUrl:'home.html',
controller: 'homeCtrl'
})
.otherwise({
redirectTo: '/'
});
});
login.html是我的应用的第一页。
但登录后,重新加载任何将在login.html页面中结束的页面
我希望其他网页在刷新和login.html上保持活力作为我的首页
答案 0 :(得分:1)
重新加载页面每次都会重新创建$ rootScope。因此,您需要将登录详细信息存储在任何存储中,例如localstorage。
http://blog.teamtreehouse.com/storing-data-on-the-client-with-localstorage
此链接可能对您有所帮助。您需要在成功登录后存储数据。并获取存储的数据并在解析URL时验证使用情况。
答案 1 :(得分:0)
scotchApp.config(function($stateProvider, $urlRouterProvider, $compileProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$compileProvider.debugInfoEnabled(false);
// route for the home page
$stateProvider
.state('home', {
url: '/home',
templateUrl : 'pages/home.html',
controller : 'mainController'
})
// route for the about page
.state('about', {
url: '/about',
templateUrl : 'pages/about.html',
controller : 'aboutController'
})
// route for the contact page
.state('contact', {
url: '/contact',
templateUrl : 'pages/contact.html',
controller : 'contactController'
});
$urlRouterProvider.otherwise('home');
});
尝试这样的事情。