[英]Detect whether Angular is loaded on a page when using Systemjs
更新:
這個問題專門討論了Angular 2 ,現在已經過時了 。 在發布時,沒有辦法檢測它是否已加載到頁面上。 我沒有測試過其他版本,但Angular 8現在有一種簡單的方法可以檢測到這一點,並在下面的答案中指出。
我試圖找出一個好的(最好是最好的)方法來檢測頁面上是否加載了Angular。
我看了一下這個問題: 檢測AngularJS是否加載到當前頁面的方法 ,但答案只是說明使用window.angular
,這是我嘗試的第一件事(很久才找到答案。)似乎好像systemjs導致Angular不在全局(窗口)范圍內。
這是我的html文件的頭部:
<script src="client/node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="client/node_modules/systemjs/dist/system.src.js"></script>
<script src="client/node_modules/rxjs/bundles/Rx.js"></script>
<script src="client/node_modules/angular2/bundles/angular2.dev.js"></script>
<link rel="stylesheet" href="client/styles/main.css"/>
<script>
System.config({
packages: {
client: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('client/app')
.then(null, console.error.bind(console));
</script>
基於這個問題 ,以及我對http2的理解,我沒有看到不使用systemjs的真正原因。
顯然,我可能是錯的,systemjs可能不是問題的原因; 無論如何, window.angular
返回undefined,即使我正在查看我的Angular應用程序。
為了給你我們的用例,萬一它有幫助,我們正在通過一個init文件加載一個角度應用程序,該文件將在其他網站上使用(在大多數情況下我們不控制頁面。)我們希望我們的init文件是能夠檢測頁面中是否已包含angular2(和正確版本)以及其他依賴項。 如果不是,我們會動態添加他們沒有的東西來滿足我們的需求。 (這種方法可能還有其他問題,但是當我們到達那里時我們將解決這些問題。)
摘要
window.angular
返回undefined。 我成功使用以下方法檢測Angular2:
window.ng
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.