グローバル変数を使用して、外部 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 が空であることを確認するにはどうすればよいですか?