Yönlendirme belirli bir güzergah durumuna göre
Giriş görünümü olan küçük bir AngularJS uygulaması ve ana görünüm, gibi yapılandırılmış yazıyorum:
$routeProvider
.when('/main' , {templateUrl: 'partials/main.html', controller: MainController})
.when('/login', {templateUrl: 'partials/login.html', controller: LoginController})
.otherwise({redirectTo: '/login'});
Benim LoginController kullanıcı kombinasyonu pas/kontrol eder ve $rootScope bu yansıtan bir özellik kümeleri:
function LoginController($scope, $location, $rootScope) {
$scope.attemptLogin = function() {
if ( $scope.username == $scope.password ) { // test
$rootScope.loggedUser = $scope.username;
$location.path( "/main" );
} else {
$scope.loginError = "Invalid user/pass.";
}
}
Her şey çalışıyor, ama ben 5 ** erişim eğer giriş ekranı atlayarak bitiriyorum. "Ne zaman güzergah değişiklikleri, $rootScope.gibi bir şeyler yazmak istedim boş zaman /giriş yönlendirme loggedUser"
...
... bekle. Rota değişiklikleri bir şekilde dinleyebilir miyim? Bu soru zaten post ve bakmaya devam edeceğim.
CEVAP
Üzgünüm benim kendi soruyu cevaplamak için, ama bazı belge ve kaynak kodu ile birkaç dalış sonra, o çalışma var sanırım. Belki de bu bir başkası için yararlı olacak mı?
Modül yapılandırması için aşağıdaki eklendi:
angular.module(...)
.config( ['$routeProvider', function($routeProvider) {...}] )
.run( function($rootScope, $location) {
// register listener to watch route changes
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
if ( $rootScope.loggedUser == null ) {
// no logged user, we should be going to #login
if ( next.templateUrl == "partials/login.html" ) {
// already going to #login, no redirect needed
} else {
// not going to #login, we should redirect now
$location.path( "/login" );
}
}
});
})
Tuhaf bir şey "" Rota nesne bir url veya başka bir şey yoktu. çünkü ertesi kısmi adı (login.html
) test etmem gerekiyordu. Belki daha iyi bir yolu var mı?
Nasıl iç listenin belirli bir dizine g...
DNS Amazon Route53 URL yönlendirme gör...
Nasıl belirli bir IP adresine göre Ülk...
Neden ben aramak zorunda 'çıkış&#...
Üreten belirli bir dize tüm permütasyo...