我正在使用全局變量與外部javascript進行通信。所以我用AngularJs清除全局變量
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仍然包含舊數據,當我嘗試更新我的視圖。所以這個問題不應該是全球性的變數,而應該是一個仍然佔據以前數據的服務。我如何確保Report.reports在更新時爲空?
嘗試在角碼$窗口,這樣你的角度可以訪問到window對象。你可以嘗試不斷的 – Whisher
總是嘗試!可能是緩存問題? – Tropicalista
嘗試發佈更多的代碼 – Whisher