一次点击处理多个http请求
Handling of Multiple http request in a single click
我是 angularJS 的新手。我对块 UI 使用了 Angular 指令,它按预期工作。我的问题是在加载两个模板之间实际上调用了 3 个后端服务。所有这些服务都必须是顺序的。所以在错误情况下它只是跳过这一步。根据块 UI 设计,它确实显示加载页面,但它显示了 3 次(基本上它在每个 http 调用上 start/stop)。我尝试使用它们的手动启动/停止,但没有效果。即使按照他们的指示,我也一定在配置上做错了什么。对不起,如果这是个愚蠢的问题,但我是 angular js 的新手,正在学习这些新东西。
这里有关于我正在使用的指令的更多详细信息。
我的代码:
angular.module(‘myApp').controller('MyController', function($scope, blockUI) {
//A function called from user interface, which performs an async operation.
$scope.onSave = function(item) {
// Block the user interface
blockUI.start();
// Perform the async operation
item.$save(function() {
//service call 1 $http.post
if success then
//service call 2 $http.post
if success
//service call 3 $http.post
else
//error scenario
else
//error scenario
// Unblock the user interface
blockUI.stop();
});
};
});
以上代码将显示 blockUI 3 次。作为(3 个 http 调用)...希望在块 UI 执行时将 3 个不同的调用视为一个调用。
当我找到问题的答案时,它总是让我很开心。这是我用于实施的答案。希望这对其他人有帮助。
angular.module(‘myApp').controller('MyController', function($scope, blockUI) {
//A function called from user interface, which performs an async operation.
$scope.onSave = function(item) {
// Block the user interface
blockUI.start();
// Perform the async operation
item.$save(function() {
$timeout(function() {
blockUI.message('Still loading ...');
//service call 1 $http.post
if success then{
$timeout(function() {
blockUI.message('Almost there ...');
//service call 2 $http.post
if success then{
$timeout(function() {
blockUI.message('Cleaning up ...');
//service call 3 $http.post
if success then
//process save
else{
//error scenario
// Unblock the user interface
blockUI.stop();
}
}, 3000);
}else{
//error scenario
// Unblock the user interface
blockUI.stop();
}
}, 2000);
}else{
//error scenario
// Unblock the user interface
blockUI.stop();
}
}, 1000);
});
};
});
这将解决我的问题……它使用 blockUI 作为单个 blockUI 进行完整的 3 次调用。现在留言我要不要看个人选择
我是 angularJS 的新手。我对块 UI 使用了 Angular 指令,它按预期工作。我的问题是在加载两个模板之间实际上调用了 3 个后端服务。所有这些服务都必须是顺序的。所以在错误情况下它只是跳过这一步。根据块 UI 设计,它确实显示加载页面,但它显示了 3 次(基本上它在每个 http 调用上 start/stop)。我尝试使用它们的手动启动/停止,但没有效果。即使按照他们的指示,我也一定在配置上做错了什么。对不起,如果这是个愚蠢的问题,但我是 angular js 的新手,正在学习这些新东西。
这里有关于我正在使用的指令的更多详细信息。
我的代码:
angular.module(‘myApp').controller('MyController', function($scope, blockUI) {
//A function called from user interface, which performs an async operation.
$scope.onSave = function(item) {
// Block the user interface
blockUI.start();
// Perform the async operation
item.$save(function() {
//service call 1 $http.post
if success then
//service call 2 $http.post
if success
//service call 3 $http.post
else
//error scenario
else
//error scenario
// Unblock the user interface
blockUI.stop();
});
};
});
以上代码将显示 blockUI 3 次。作为(3 个 http 调用)...希望在块 UI 执行时将 3 个不同的调用视为一个调用。
当我找到问题的答案时,它总是让我很开心。这是我用于实施的答案。希望这对其他人有帮助。
angular.module(‘myApp').controller('MyController', function($scope, blockUI) {
//A function called from user interface, which performs an async operation.
$scope.onSave = function(item) {
// Block the user interface
blockUI.start();
// Perform the async operation
item.$save(function() {
$timeout(function() {
blockUI.message('Still loading ...');
//service call 1 $http.post
if success then{
$timeout(function() {
blockUI.message('Almost there ...');
//service call 2 $http.post
if success then{
$timeout(function() {
blockUI.message('Cleaning up ...');
//service call 3 $http.post
if success then
//process save
else{
//error scenario
// Unblock the user interface
blockUI.stop();
}
}, 3000);
}else{
//error scenario
// Unblock the user interface
blockUI.stop();
}
}, 2000);
}else{
//error scenario
// Unblock the user interface
blockUI.stop();
}
}, 1000);
});
};
});
这将解决我的问题……它使用 blockUI 作为单个 blockUI 进行完整的 3 次调用。现在留言我要不要看个人选择