这是我的案例场景:
- 用户未登录,他们尝试访问 /settings 页面。
- 我的设置控制器根据
$auth.isAuthenticated() != true
他们没有登录来识别,并将他们重定向到 /login - 用户填写他们的电子邮件和密码并点击提交。
然后我想在第三步中将它们重定向到 /settings 页面,而不是主页。
我想我会改变这个变量:
$authProvider.loginRedirect = '/';
问题是我无法$authProvider
在我的文件中包含我的loginCtrl.js
文件,而不会在我的控制台中出现“未知提供者”错误:https : //docs.angularjs.org/error/$injector/unpr?p0= 换句话说,Angular 无法识别$authProvider
何时我试着把它包括在内。这是我的loginCtrl.js
文件的样子:
/* Everything is blowing up because I'm trying to include $authProvider */
angular.module("PrayerChain")
.controller("loginCtrl", ["$rootScope", "$scope", "$state", "$http", "$auth", "$authProvider", loginCtrl]);
function loginCtrl($rootScope, $scope, $state, $http, $auth, $authProvider) {
$authProvider.loginRedirect = '/settings';
$scope.login = function () {
$auth.login({ Email: $scope.email, Password: $scope.password })
.then(function() {
})
.catch(function (response, status, headers) {
console.log(response);
$scope.error = JSON.parse(response.data);
});
};
}
甚至可能包含$authProvider
在控制器中吗?如果不是,那么在使用 Satellizer 登录时改变人们被重定向到哪里的替代解决方案是什么?
谢谢。