【发布时间】:2016-03-24 18:15:55
【问题描述】:
我有 2 个控制器,都使用相同的更新方法来获取数据:
angular.module('project')
.controller('mainController', function($http, $scope, $timeout, $sce) {
updateData($http, $scope, $timeout, $sce, false);
})
.controller('settingsController', function($http, $scope, $timeout, $sce) {
updateData($http, $scope, $timeout, $sce, true);
})
我的updateData 看起来像这样:
function updateData($http, $scope, $timeout, $sce, settings) {
$timeout(function() {
if (settings) {
getSettings($http, $scope);
}
else {
getDataA($http, $scope);
getDataB($http, $scope);
}
updateData($http, $scope, $timeout, $sce, settings);
}, 1000);
}
现在刷新主页时(使用mainController)我总是收到“空”消息,因为该过程没有完成所有方法调用,并且当切换到另一个站点时(使用settingsController)加载需要很长时间这是因为必须先完成前一个请求的所有请求。刷新/切换站点时如何直接“杀死”所有待处理的更新?
【问题讨论】:
-
它的实现不正确..将依赖项作为参数传递给方法是不正确的.. 而方法应该存在于服务中。这样我们就可以向他们索取数据..
标签: javascript angularjs