我正在使用全局变量与外部JavaScript进行通信。所以我用
window.report = $scope.myData // my scope with all data
问题是,当我尝试运行其他报告时,我应首先重置此全局变量,然后再次填充它。
我尝试过:
window.report = null;
window.report = {};
但如果没有要覆盖的新数据,旧数据仍然存在....
这可能是导致问题的部分模板缓存吗?
我试图在window.report变量上登录控制台并且未定义。所以问题应该在其他地方......
[UPDATE]
这里的问题可能是服务。
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仍然包含旧数据。所以问题不应该是全局变量,而是一个仍然抓住以前数据的服务。我更新时如何确定Report.reports为空?
答案 0 :(得分:0)
答案 1 :(得分:0)
我已经解决了为我的服务添加新功能的问题,并且在所有过程之后我重置了我的服务var:
Reports.resetReports = function () {
Reports.reports = {};
}