$ http.post - >开始(对于预加载器)

时间:2015-09-25 07:16:24

标签: javascript jquery ajax angularjs http

在我的控制器中,我现在有:

$http.post('/api/agendainsert', { appointment_datetime: appointment_date + appointment_hour, profile: profile, column_id: column_id })
            .success(function(data, status, headers, config){
                $state.go('form.success');
            })
            .error(function(data, status, headers, config) {
                console.log("Data: " + data +
                    "<hr />status: " + status +
                    "<hr />headers: " + headers +
                    "<hr />config: " + config);
        });
    };

$ http.post STARTS 时是否可以使用此功能?因此,我可以在屏幕上显示预加载器,并在数据成功拉出时隐藏

1 个答案:

答案 0 :(得分:1)

您需要一个服务才能做到这一点。考虑创建WaitService。 WaitService将侦听两个事件wait:startwait:stop

wait:start到来时,您必须使用指令在<body>上注入加载动画。当wait:stop到来时,您必须删除该加载动画。您可以在$rootScope

中观看这些活动

现在在您的应用程序中包含此WaitService并使用如下。

$scope.$emit('wait:start'); //indicate start loading
$http.post('/api/agendainsert', { appointment_datetime: appointment_date + appointment_hour, profile: profile, column_id: column_id })
            .success(function(data, status, headers, config){
                $scope.$emit('wait:stop'); //indicate remove loading
                $state.go('form.success');
            })
            .error(function(data, status, headers, config) {
                $scope.$emit('wait:stop'); //indicate remove loading
                console.log("Data: " + data +
                    "<hr />status: " + status +
                    "<hr />headers: " + headers +
                    "<hr />config: " + config);
        });
    };