2016-10-20 4 views
2

ボタンをクリックすると角張ったアプリケーションが読み込まれます。ボタンがクリックされると、angular2が初めて読み込まれたときにzone.jsの内容がロードされるので、Zone already loadedというエラーが表示されます。zone.js:25 Uncaught Error:ゾーンが既にロードされています

ゾーンをチェックする方法は既にロードされていますが、使用可能な場合はロードしようとするのを防ぐことができますか?私はdelete window['zone']によって(以下答え)ゾーンを削除して、もう一度それを再ロードしようとすると、そのあなたがこのような何かを試すことができzone.js:984 Uncaught ReferenceError: Zone is not defined

+0

追加してください。あなたの問題を示すいくつかのコード – yurzui

+0

私は自分のプロジェクトを構築するためにangular-cliを使用しています。いったんビルドすると、zone.jsを含む2つのファイルしか作成されず、ボタンをクリックして角型アプリケーションをロードします。ボタンが2回目にクリックされると、エラーが表示されます。 –

+0

ポイントは私が作成したファイルをangular-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

これは、ブラウザからスクリプトを削除して再度読み込む1つの方法です。それを試してみましょう –

関連する問題