我正在使用nodejs
开发angular
应用程序。在这里,我只是与以下场景混淆。我需要最佳实践知道处理所有这些:
在route
所有这些情况都是在fronend或后端处理?这是正确的方法吗?
这里是样品:
从不需要测试身份验证:
.when('/login', {
templateUrl : 'app/views/pages/login.html',
controller : 'mainController',
controllerAs: 'login'
})
.when('/login', {
templateUrl : 'app/views/pages/createUser.html',
controller : 'userController',
controllerAs: 'user'
})
始终需要身份验证:
.when('/login', {
templateUrl : 'app/views/pages/showProduct.html',
controller : 'productController',
controllerAs: 'product'
})
.when('/login', {
templateUrl : 'app/views/pages/showStatics.html',
controller : 'staticController',
controllerAs: 'static'
})
在使用错误的网址进行身份验证之前:
.when('/login', {
templateUrl : 'app/views/pages/testingWrong'
})
使用错误的网址进行身份验证后:
.when('/static', {
templateUrl : 'app/views/pages/showStatics.html',
controller : 'staticController',
controllerAs: 'static'
})
.when('/static/wrong', {
templateUrl : 'app/views/pages/showStatics.html',
})
如果有教程,请与我分享。或者如果有解决方案,请发布详细信息以便了解。
先谢谢。
答案 0 :(得分:2)
您需要添加解析函数参数,如下所示
when('products', {
templateUrl : 'app/views/pages/showProduct.html',
controller : 'productController',
controllerAs: 'product',
resolve: function($q, $location, Auth) {
var deferred = $q.defer();
deferred.resolve();
if (!Auth.isLoggedIn()) {
$location.path('/login');
}
return deferred.promise;
}
});
Auth将是一些保持用户记录状态的服务。 希望这会对你有所帮助。