(Açısal-uı-router) çözme işlemi sırasında yükleme animasyon Show
Bu iki parçalı bir soru
Gidermek özelliği içinde $stateProvider kullanıyorum.() devlet denetleyicisi yüklemeden önce bazı server veri kapmak için. Nasıl yükleniyor bir animasyon bu işlem sırasında göstermek için alma hakkında gitmek istiyorsunuz?
Ayrıca gidermek özelliği kullanmak çocuk durumları var. Sorun uı-router sonuçlandırmak için istediğiniz gibi görünüyortümyüklemeden önce giderirherhangi birdenetleyicisi. Ana denetleyicileri kendi çözer çözümlenmiş bir kez yüklemek için, tüm alt çözümler için beklemek zorunda kalmadan alabilirim bir yolu var mı? Bu cevap büyük ihtimalle de ilk sorunu çözecektir.
CEVAP
EDİT: Burada bile daha kolay bir çözüm, Test ve güzel bir çalışma:
Benim ana denetleyicisi sadece
$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
if (toState.resolve) {
$scope.showSpinner();
}
});
$scope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
if (toState.resolve) {
$scope.hideSpinner();
}
});
Bu durumu değiştirmek tamamlandığında gidermek için bir şey olan bir devlet gitmek üzereyiz zaman spinner ve gizler gösterir. Bazı devlet hiyerarşisinin check-up (Yani eğer yükleniyor, bir üst devlet bir şey çözerse spinner show) eklemek isteyebilirsiniz ama bu çözüm benim için gayet iyi çalışıyor.
Burada alternatif olarak başvuru için: eski benim önerim
Uygulama denetleyicisi, eğer gidermek sırasında bir değer değişimi (https://github.com/angular-ui/ui-router/wiki/Quick-Reference#wiki-events-1) göstermek istediğiniz yere geçer isen
stateChangeStart
olay ve onay için dinleyin$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){ if (toState.name == 'state.with.resolve') { $scope.showSpinner(); //this is a function you created to show the loading animation } })
Sen denetleyicisi sonunda çağrılan, spinner gizleyebilirsiniz
.controller('StateWithResolveCtrl', function($scope) { $scope.hideSpinner(); })
Sen de gidermek sırasında meydana gelmiş olabilecek hataları kontrol etmek için $stateChangeError
olay dinleyip hata idare ederken, animasyon gizleyerek isteyebilirsiniz.
Bu denetleyicileri arasındaki spinner mantığı dağıtma gibi değil temiz, ama bir yol var. Umarım yardımcı olur.
AngularJS : açısal yol arasındaki Fark...
'geri gönderme İşlemi sırasında n...
açısal uı-router oturum açma kimlik do...
Açısal $http isteği sırasında Spinner ...
Açısal JS - - mevcut durumu Yeniden - ...