2017-07-17 69 views
-1

我有這段代碼;但它不會將pageLoad設置爲結帳並在控制檯上顯示undefined。在HTML中聲明一個變量,並在angular2中使用它在單獨的JS文件中

<html> 
<body> 
    <script type="text/javascript"> 
    var pageLoad = "checkout";  
    </script> 
</body> 
</html> 
console.log("Document type pageLoad ", typeof pageLoad); 
$(document).ready(function ($) { 
    if (typeof pageLoad !== "undefined") { 
    switch (pageLoad) { 
     case 'checkout': 
     Checkout.init(); 
     break; 
    } 
    } 
+1

只要在*之後包含外部腳本*,您可以在頁面中定義變量,它就會正常工作 –

+1

我很困惑。我在這裏看到jquery,但沒有角度。 –

+0

@EliSadoff,這個html代碼位於組件中,通過選擇器在app.components中訪問 –

回答

0

你必須確保其他腳本調用,即腳本定義pageLoad應包括上面的腳本與console.log像以前一樣pageLoad定義如下:

HTML:

<html> 
    <head> 
     <script src="path/to/jquery.js"></script> 
    </head> 
<body> 
    <script type="text/javascript"> 
     var pageLoad = "checkout";  
    </script> 
    <!-- external.js should be below the above script for pageLoad to be defined 
    <script src="external.js"></script> 
</body> 
</html> 

external.js:

// pageLoad will be defined here 
console.log("Document type pageLoad ", typeof pageLoad); 
$(document).ready(function($) { 
    if (typeof pageLoad !== "undefined") { 
     switch (pageLoad) { 
      case 'checkout': 
       Checkout.init(); 
       break; 
     } 
    } 
} 
+0

所有必需的Javascript文件都加載到angular-cli.json中的script標籤中,然後HTML通過組件使用選擇器呈現 –

相關問題