Angularjs Показаны Загрузка блесны

0

Вот мой запрос ajax,

Я хотел показать загрузчик. Я здесь, но я не понимаю.

Я просто хотел показать spinner во время $http.post и скрыть после того, как сообщение будет сделано.

Что-то вроде angular.element('#mydiv').show() и angular.element('#mydiv').hide() внутри вызова. В каком месте я должен указать, чтобы показать #mydiv во время публикации.

Вот мой призыв

$scope.doVerify={email:'',password:''};
    $scope.doVerify = function () 
    {
     email = $scope.verify.useremail;
     password = $scope.verify.password;
     $scope.data.show = false; 
     $http.post('VerifyUser', { email: email, password: password}).then(function (results) 
     {
     $scope.data.show = true
     if(results.data=='success')
     {
     $location.path('registration');
     }
     else
     {
     $scope.data.msg = 'Incorrect Password'
     }
     });
    };

Где я должен поставить angular.element('#mydiv').show() и angular.element('#mydiv').hide() для загрузчика?

4 ответа

1
Лучший ответ

angular.element('#mydiv').show() должен идти до того, как вы сделаете $ http call и angular.element('#mydiv').hide() должно идти успешно и обратные вызовы.

angular.element('#mydiv').show(); // show loading spinner
$http.post('VerifyUser', { email: email, password: password}).then(function (results) {
    angular.element('#mydiv').hide(); // hide loading spinner
});
  • 0
    Могу ли я сделать что-то вроде $ ('# mydiv'). FadeOut (100); то есть, чтобы #mydiv появлялся и исчезал медленно ..?
  • 0
    Я верю, что да, если у вас есть JQuery в вашем приложении.
Показать ещё 4 комментария
1

Я думаю, что лучшим решением для этого является добавление счетчика в HTML следующим образом:

<div ng-show="spinnerVisibility" class="spinner></div>

а затем spinnerVisibility переменной spinnerVisibility в контроллере до/после создания сообщения. Пример:

$scope.spinnerVisibility = true;
$http.post('VerifyUser', { email: email, password: password}).then(function (results) {
    $scope.spinnerVisibility = false;
});
  • 0
    спасибо, могу я сделать так, чтобы этот div- spinner медленно появлялся как потухший или что-то в этом роде?
  • 0
    Да, конечно - вы можете сделать это с помощью CSS3. Просто добавьте / удалите класс, который будет выполнять эффект fadeIn / fadeOut. Проверьте это stackoverflow.com/questions/24868844/…
1

angular.element('#mydiv').show() должен войти в определение вашего перехватчика. Перехватчики вставляются внутри конфигурационного блока углового модуля. Именно так оно и было сделано здесь.

angular.element('#mydiv').hide() необходимо войти в ответ службы $ http (внутри блока 'then').

Пример, на который вы ссылаетесь, делает это именно так, как должен.

1

Здесь Как вы можете показать spinner в своем коде. показать или скрыть ваш img/icon whre $ scope.prograssing var sets.

$scope.doVerify={email:'',password:''};
        $scope.doVerify = function () 
        {
         email = $scope.verify.useremail;
         password = $scope.verify.password;
         $scope.data.show = false; 

    $scope.sendAjax = function() {
    $scope.prograssing = true; // show spinner here
    $http.post('VerifyUser', { email: email, password: password}).then(function (results) 
             {
             $scope.data.show = true
             if(results.data=='success')
             {
             $location.path('registration');
    $scope.prograssing = false;        // hide spinner when successful
             }
             else
             {
             $scope.data.msg = 'Incorrect Password';
    $scope.prograssing = false;        // hide spinner when unsuccessful
             }
             });
           };
$scope.sendAjax();
       };

Ещё вопросы

Сообщество Overcoder
Наверх
Меню