Oturum açmamışlarsa, kullanıcıyı oturum açma yoluna yönlendirmenin bir yolunu temizlemeye çalışıyorum. Çözümüm başka bir SO yanıtına dayanıyordum here Kutunun dışında çalışıyorum. İşte benim çözümüm. Ben rotayı yönlendirmek böylece ben $routeChangeError
olayı dinleyebilir neredeKullanıcı kimliği doğrulanmamışsa yönlendirmek için yönlendirin
angular.module('myApp', ['ngResource', 'ngRoute'])
.config(['$routeProvider', function ($routeProvider) {
var requireAuthentication = function() {
return {
load: function ($q) {
console.log('Can user access route?');
if (g_isloggedIn === true) { // fire $routeChangeSuccess
var deferred = $q.defer();
deferred.resolve();
console.log('Yes they can!');
return deferred.promise;
} else { // fire $routeChangeError
console.log('No they cant!');
return $q.reject("'/login'");
}
}
};
};
$routeProvider
.when('/some_page_that_requires_authentication', {
templateUrl: '/views/secret.html',
controller: 'secretCtrl',
resolve: requireAuthentication()
})
.when('/anybody_can_see_me', {
templateUrl: '/views/public.html',
controller: 'publicCtrl',
});
}]);
Sorum şu,? Bunu bir direktifte yapmayı denedim, ancak olayı asla ateşleyemedim. Bir denetleyiciye koyamıyorum çünkü söz reddedilirse yüklenmez. Düşüncesi olan var mı?
Bu soru biraz yardım bulabilirsiniz
"ng-view" öğesinin dışında yer alan herhangi bir denetleyicide (veya yönerge) gözlemlemeniz gerekir. – Stewie
bile 'run() '... kodunuzda hafif bir hata koyabilirsiniz ...' $ q.defer();' '' 'if' – charlietfl