gpt4 book ai didi

AngularJS $q.all 用于 Controller 中的所有查询

转载 作者:行者123 更新时间:2023-12-04 04:42:19 25 4
gpt4 key购买 nike

我在一个 Controller 中有多个查询,在 Controller 加载时加载(以及在我单击某些元素之后)

var d = $q.defer();
$scope.userOrders = UserOrders.query({id:$routeParams.id}, function(result) {
d.resolve(result);

});
$q.all([d.promise]).then(function(response){
$('#loading').hide();
});

我怎么只能写一次,而不是在每个 Controller 中?

最佳答案

将您的 ajax 逻辑封装在一个服务中

var services = angular.module('myServices', []);

services.factory('AjaxLoader', ['$q', function($q) {

return {
doAjax : function() {
var d = $q.defer();
$scope.userOrders = UserOrders.query({id:$routeParams.id}, function(result) {
d.resolve(result);
});

$q.all([d.promise]);
}
}
});

在您的 Controller 中。
var controllers = angular.module('myControllers',[]);

controllers.controller('Controller', ['AjaxLoader', function(AjaxLoader) {
AjaxLoader.doAjax().then(function() {
$("#loading").hide();
});
}]);

关于AngularJS $q.all 用于 Controller 中的所有查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18709189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com