Yanıtın altındaki yorumu okuduğunuzdan emin olun. Bu soruyu cevapladığımda ünite testleri ve tasarımı hakkında düşünmedim. İstenilen sonuca ulaşmak için birçok yoldan birinin ne olabileceğini gösteriyorum
Denetleyicinin veya app.config.run
'un altında yapmanın en iyi yolu. Sizin durumunuzda, kullanıcı giriş durumunu kontrol etmek için başka bir modül oluşturmalısınız. Uygulama modülünüze kullanıcı giriş durumu kontrol modülünü enjekte edin. İşte
Sadece uygun yönlendirmeleri/yolu için bir kukla şablonu ve küçük kontrolör yaparak, bunu
http://plnkr.co/edit/dCdCEgLjLeGf82o1MttS
var login = angular.module('myLoginCheck', [])
.factory('$logincheck', function() {
return function (userid) {
// Perform logical user logging. Check either
// by looking at cookies or make a call to server.
if (userid > 0) return true;
return false;
};
});
var app = angular.module('myApp', ['myLoginCheck']);
app.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/publicurl', {})
.when('/loginurl', {})
.when('/unauthorize', {})
.otherwise({redirectTo: '/'});
})
.run(function ($logincheck, $location) {
//console.log("Into run mode");
console.log("Userid 5 is logged in: ", $logincheck(5));
console.log("Userid 0 logged in: ", $logincheck(0));
//now redirect to appropriate path based on login status
if ($logincheck(0)) {
//$location.path('/loginurl'); or
}
else {
//$location.path('/publicurl'); or
}
});
app.controller('MainCtrl', function ($scope) {
$scope.name = 'World';
});
https://groups.google.com/forum/#!msg/angular/ki5rzHoRciw/0hBkkXSfvlMJ –