2013-10-11 2 views
0

Я использую глобальную переменную для связи с внешним javascript. Поэтому я используюAngularJs очистить глобальную переменную

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 пуст при обновлении?

+1

попробовать в угловом код $ окна делает так что вы получите доступ к объекту окна на угловой . Вы также можете попробовать постоянный – Whisher

+0

Всегда пробовал !! Может быть проблема с кешем? – Tropicalista

+0

попытаться отправить еще код – Whisher

ответ

0

я решил добавить новую функцию в моей службе, и после всего процесса сбросить мой вар службы:

Reports.resetReports = function() { 
     Reports.reports = {}; 
    } 
0

не использовать окно просто не ставьте var перед ним. Кроме того, вы не можете удалять техническую глобальную переменную, которая является просто базовым javascript.

Смежные вопросы