$stateChangeStart
sayfamda run
sayfamda, giriş yapmadıysanız, kullanıcı giriş yapmamışsa (özel loginProvider
kullanarak) dinliyorum.Köşeli yönlendiriciyle yapılandırma nasıl yeniden yüklenir?
Kullanıcı oturumu açmadıysa, /#/home
adresine gitmek için url'yi /#/login
olarak değiştirirsiniz ... Bu durum sayfayı yeniden yüklemez, dolayısıyla kullanıcı ana sayfaya lol olarak erişebilir.
Peki, bir yolu nasıl yeniden yüklersiniz?
angular.module("app", [
"app",
"ui.router"
])
.config(["$stateProvider", "$urlRouterProvider", "$httpProvider", function ($stateProvider, $urlRouterProvider, $httpProvider) {
$stateProvider
.state("login", {
url: "/login",
templateUrl: "app/login/login.html",
controller: "loginController",
authenticate: false
})
.state("home", {
url: "/home",
templateUrl: "app/home/home.html",
controller: "homeController",
authenticate: true
});
$urlRouterProvider.otherwise("login");
}])
.run(["$rootScope", "$state", "loginProvider", function ($rootScope, $state, loginProvider) {
$rootScope.$on("$stateChangeStart", function (event, toState, toParams, fromState, fromParams) {
if (toState.authenticate && !loginProvider.isLoggedIn()) {
$state.transitionTo("login");
$state.reload(); // not working
$state.go("login", {}, {reload: true}); // not working
}
});
}]);
Açısal sürüm 1.5.1 ve açısal-ui yönlendirici sürüm 0.2.18 kullanıyorum.
herhangi bir hatayla karşılaştı? – Sandeep
@Sandeep Hata yok, sadece '/ #/home' seçeneğine gitmek, url’i'/#/login' olarak değiştirir ... ancak yine de ana sayfayı gösterir. Giriş sayfasına gitmek için * ve * sayfasına gitmesini istiyorum. –
cevabını görmek benim için yararlı olabilir – Sandeep