我正在使用全局变量与外部 javascript 进行通信。所以我用
window.report = $scope.myData // my scope with all data
问题是当我尝试运行其他报告时,我应该首先重置这个全局变量,然后再次填充它。
我尝试过:
window.report = null;
window.report = {};
但是如果没有要覆盖的新数据,旧数据仍然存在....
这可能是导致问题的部分模板缓存吗?
我试图登录控制台 window.report 变量并且未定义。所以问题应该出在其他地方......
[更新]
这里的问题可能是服务。
app.factory('Report', ['$http', function($http,$q){
var Reports = {
reports : {},
requests :[{'url':'getReport','response':'Analizing page','count':1},
{'url':'getPagerank','response':'Getting 1','count':2},
{'url':'getRobots','response':'Getting 2','count':3},
{'url':'getIpCanonicalization','response':'Gwetting 3','count':4}]
]
};
Reports.getReport = function(target, source, response, callback) {
return $http({ url:"/seo/getter/",
method:"POST",
//cache: true,
params:{"url" : target, "action": source}
}).success(function(result) {
callback(result);
console.log(Reports.reports)
jQuery.extend(true,Reports.reports, result.data)
//console.log($scope.user)
}).error(function(error){
callback(result);
jQuery.extend(true,Reports.reports, result.data)
})
}
Reports.startQueue = function (target, callback) {
var promises = [];
this.requests.forEach(function (obj, i) {
promises.push(Reports.getReport(target, obj.url, obj.response, function(response,reports){
callback(obj.response,Reports.reports,obj.count)
}));
});
}
return Reports;
}])
我认为当我尝试更新视图时 Reports.reports var 仍然包含旧数据。所以问题不应该是全局b变量,而是仍然抓取先前数据的服务。更新时如何确定 Report.reports 为空?