如果用户输入的不是url,我需要将“登录”用户重定向到主页。我有一个名为“authService”的服务,我可以检查line 22: syntax error: unexpected end of file
remote: An error occurred executing 'gear postreceive' (exit code: 2)
remote: Error message: CLIENT_ERROR: Failed to execute action hook 'build'
或user auth == true
。
如果用户不是auth(false
),我会使用$STATE.GO
重定向到登录页面。
authService.auth == false
现在,当用户为app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$httpProvider',
function ($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider.otherwise(function ($injector, $location) {
var $state = $injector.get("$state");
$state.go("login");
});
}]);
时,我希望类似于将用户重定向到主页。当用户使用令牌时,尝试键入不存在的URL,重定向到主页。
我尝试使用注入authService服务并生成if / else来执行此操作。 但这不起作用,因为我收到错误
错误:$ injector:unpr 未知的提供商 未知提供者:authService
auth == true
这是不好的解决方案吗?我可以向app.config注入自定义服务吗?有人可以帮帮我吗?
谢谢。
答案 0 :(得分:1)
您应该在run
函数上执行此操作并使用$stateChange
事件:
app.run(['$state', '$rootScope', 'authService', function($state, $rootScope, authService) {
$rootScope.$on("$stateChangeStart", function(event, toState) {
if (toState.name !== "home" && !authService.auth) {
// Prevent going to the state
event.preventDefault();
$state.go("home");
});
});
}]);