一个带有参数的函数,调用它4次并保持数据分离
One function with parameters, call it 4 times and keep data separated
让我解释一下
我的控制器中有这个功能
function postDashboardsData (dataType, dateFrom, dateTo) {
Api.post('rotations/' + vm.data[0]._id + '/dashboard', angular.extend({
type : dataType,
date_range : {
from : dateFrom,
to : dateTo
}
}, vm.data))
.then(function (data) {
$scope.overallData = data;
});
}
然后我调用这个函数4次,以便每次调用相同路由的函数时使用不同的数据执行post
:
postDashboardsData('overall', $scope.overall, $scope.overall1);
postDashboardsData('clicks-conversion', $scope.clicksConv1, $scope.clicksConv);
postDashboardsData('traffic-sources', $scope.traffic, $scope.traffic1);
postDashboardsData('devices', $scope.devices, $scope.devices1);
当post
完成时,一些数据会到达前端,以便我进行渲染。
我遇到的问题是:
唯一可以呈现的数据是我在代码中调用的最后一个函数的数据,因为变量$scope.overallData = data;
已被覆盖。
我的意思是:当第一个post
完成时,data
带有来自第一个帖子的数据,当第二个post
完成时,数据带有来自第二个帖子的信息,所以变量$scope.overallData
现在保存来自第二post
的信息,并删除第一个帖子中的信息,依此类推
那么,我能做些什么来执行post
,但保持每个post
的数据分离。
我尝试动态地这样做,这样我就不必创建4个不同的函数。
您可以从post函数中删除.then()
,然后只返回promise。
function postDashboardsData (dataType, dateFrom, dateTo) {
return Api.post('rotations/' + vm.data[0]._id + '/dashboard',
angular.extend({
type : dataType,
date_range : {
from : dateFrom,
to : dateTo
}
}, vm.data));
}
然后在调用方上使用链接,如下所示:
postDashboardsData('overall', $scope.overall, $scope.overall1)
.then(function(data){
// assign whatever you like
})
postDashboardsData('clicks-conversion', $scope.clicksConv1, $scope.clicksConv)
.then(function(data){
// assign another variable
});
假设overallData是一个数组
Array.prototype.push.apply($scope.overallData, data);
哦,这会让他们按照服务呼叫完成的顺序,而不是你呼叫服务的顺序。
相关文章:
- 多次调用另一个javascript函数中的javascript函数
- 如何避免在angular上多次调用方法;s ng重复
- AngularJS:控制器中的函数被模板多次调用
- 在指定时间后多次调用Javascript中的函数
- 如何用JavaScriptEasy的方式一次调用大量restful服务
- 多次调用方法后返回相同promise的模式
- Sails.js/Waterline.add()和.remove()仅适用于第二次调用
- 多次调用promise函数,直到另一个promise函数满足条件
- jQueryAJAX函数被多次调用,但数据只在第一次调用时被提取
- 为什么第二次调用isNaN时它不起作用
- 函数被多次调用
- Cordova SQLite插件仅在第一次调用时有效
- 多次调用 Jquery 事件
- Iframe 加载回调被多次调用
- 查找与通过两次调用地理编码创建的两个 latlng 对象的距离
- 如果多次调用同一函数,如何停止该函数的先前实例
- 谷歌脚本在第二次调用Gmail后返回null
- 为什么 Javascript 中的类变量在尝试多次调用它们或将它们分配给局部变量时会消失
- 如何在javascript中以固定的间隔多次调用函数
- 对已定义函数的第二次调用;不起作用