0
1年半前、このauthSrv
を使用してバックエンドのAPIを使用してログインしてユーザーをログアウトし、完全に機能する角度アプリを作成しました。私はもう一度同じコードを実行しようと、私はこれは私のauthSrv
(工場)のコードであるError: [$injector:undef] Provider 'authSrv' must return a value from $get factory method.
を得る:私は当時、今ではなくエラーが出るのはなぜ
app.factory('authSrv', function ($rootScope, $http, $auth, $state, config, $q) {
var deferred = $q.defer();
this.login = function (email, password) {
// Show loading dialog
$rootScope.showLoading();
var credentials = {
email: email,
password: password
};
return $auth.login(credentials)
.then(
function (result) {
$http.get(config.server + 'restricted/user')
.then(function (response) {
// Stringify the returned data to prepare it
// to go into local storage
var user = JSON.stringify(response.data.user);
// Set the stringified user data into local storage
localStorage.setItem('user', user);
// The user's authenticated state gets flipped to
// true so we can now show parts of the UI that rely
// on the user being logged in
$rootScope.auth = true;
// Putting the user's data on $rootScope allows
// us to access it anywhere across the app
$rootScope.currentUser = response.data.user;
// Remove loading dialog
$rootScope.hideLoading();
// Everything worked out so we can now redirect to
// the users state to view the data
$state.go('app.artists');
deferred.resolve(response.data.user);
// promise is returned
return deferred.promise;
});
},
function (error) {
// the following line rejects the promise
deferred.reject(error);
// Remove loading dialog
$rootScope.hideLoading();
// promise is returned
return deferred.promise;
});
};
this.logout = function() {
// Show loading dialog
$rootScope.showLoading();
$auth.logout().then(function() {
// Remove the authenticated user from local storage
localStorage.removeItem('user');
// Flip authenticated to false so that we no longer
// show UI elements dependant on the user being logged in
$rootScope.auth = false;
// Remove the current user info from rootscope
$rootScope.currentUser = null;
$state.go('app.auth').then(function() {
// Remove loading dialog
$rootScope.hideLoading();
});
});
};
});
?何か変わった?
はい、そうでした。私は古いコードを再チェックし、当時はサービスだった。私は 'app.service'を除いてすべてをコピーし、それが工場だと仮定しました。私はとても恥ずかしい気がする。この質問を削除できますか? :D – Jhivan