Angular Spinner用法不使用超时

时间:2017-01-24 08:20:20

标签: angularjs

我在这里有角度微调器的问题,我有一个更新按钮,我使用旋转和加载需要在将数据保存到数据库后停止而不使用任何超时功能我需要停止加载

  function assignLectureToSubject(subject) {
            subject.$update();
        }

上面的代码是更新按钮的功能

2 个答案:

答案 0 :(得分:0)

您可以实施genric解决方案,您可以使用interceptors,这是一个示例。执行ShowWaitIndicatorHideWaitIndicator功能

的操作
app.factory('waitingInterceptor', ['$q', '$rootScope',
    function ($q, $rootScope) {
        return {
            request: function (config) {
                ShowWaitIndicator();
                return config || $q.when(config);
            },
            requestError: function(request){
                HideWaitIndicator();
                return $q.reject(request);
            },
            response: function (response) {
                HideWaitIndicator();
                return response || $q.when(response);
            },
            responseError: function (response) {
                HideWaitIndicator();
                return $q.reject(response);
            }
        };
}]);

app.config(['$httpProvider', function ($httpProvider) {
    $httpProvider.interceptors.push('waitingInterceptor');    
}]);

答案 1 :(得分:0)

使用旗帜。我们称之为isUpdating

$scope.isUpdating = false;

function update(){
  $scope.isUpdating = true;
  $http({
  method: 'POST',
  url: '/someUrl'
}).then(function successCallback(response) {
    $scope.isUpdating = false;
 }, function errorCallback(response) {
    $scope.isUpdating = false;
  });
}

在HTML中,

<your-spinner ng-show='isUpdating'>

最初,微调器被隐藏。调用update时,微调器开始在页面上显示。当事件完成时,回调将标志设置为false,从而再次隐藏它。