2016-10-20 2 views
2

мое угловое приложение загружается одним нажатием кнопки. Когда на кнопку нажимают секундное время, это дает мне ошибку Zone already loaded, потому что содержимое zone.js загружается, когда angular2 загружается в первый раз.zone.js: 25 Ошибка при отсутствии: зона уже загружена

Как я могу проверить, что зона уже загружена, а затем может предотвратить попытку загрузить ее, если она доступна?

Когда я удаляю (ответил ниже) зоны с помощью delete window['zone'] и попытаться загрузить его снова его показ zone.js:984 Uncaught ReferenceError: Zone is not defined

+0

Пожалуйста, добавьте некоторый код, который демонстрирует вашу проблему. – yurzui

+0

Я использую angular-cli для создания моего проекта. после его создания он создает только 2 файла, включая zone.js, и я загружаю свое угловое приложение одним нажатием кнопки, когда кнопка щелкнула второй раз, показывая ошибку. –

+0

Суть в том, что я могу отредактировать созданный файл угловым cli и проверить, загружена ли зона или нет, но как я могу сделать это автоматически из углового-cli или по другому пути. –

ответ

0

вы можете попробовать что-то вроде этого ...

$(function(){ 
 
\t \t function removejscssfile(filename, filetype){ 
 
\t \t var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from 
 
\t \t var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for 
 
\t \t var allsuspects=document.getElementsByTagName(targetelement) 
 
\t \t for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove 
 
\t \t if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1) 
 
\t \t  allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild() 
 
\t \t } 
 
\t \t } 
 
\t var jsCustomerTag = $("head").children("#jsShimTag"); 
 
    if (jsCustomerTag.length == 0) { 
 
    \t jsCustomerTag = document.createElement('script'); 
 
    \t jsCustomerTag.setAttribute("type", "text/javascript"); 
 
    \t jsCustomerTag.setAttribute("src", " <your js file> "); 
 
    \t jsCustomerTag.id = "jsShimTag"; 
 
     document.getElementsByTagName("head")[0].appendChild(jsCustomerTag); 
 
    } 
 

 
    jsCustomerTag = null; 
 
});

+0

, это один из способов удаления скриптов из браузера и перезагрузки. позвольте мне попробовать –

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