J'essaie de trouver un bon (de préférence la meilleure) façon de détecter si angular2 est chargé ou non sur la page.
J'ai examiné cette question: des moyens de détecter si AngularJS est chargé dans la page actuelle ou non , mais la réponse indique simplement que l'on utilise window.angular
, ce qui est la première chose que j'ai essayé (bien avant de trouver cette réponse). Comme si systemjs faisait de l'angulaire ne pas être dans la portée globale (fenêtre).
Voici la tête de mon fichier 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>
Sur la base de cette question , et de ma compréhension de http2, je ne vois pas une véritable raison de ne pas utiliser systemjs.
De toute évidence, je peux me tromper, le système ne peut pas être la cause de la question; window.angular
soit, window.angular
retourne indéfini même si je regarde mon application angulaire.
Pour vous donner notre cas d'utilisation, au cas où cela vous aidera, nous chargeons une application angulaire via un fichier d'initialisation qui sera utilisé sur d'autres sites (où nous ne contrôlons pas la page dans la plupart des cas.) Nous voulons que notre fichier d'init soit Capable de détecter si angular2 (et la version appropriée) parmi d'autres dépendances sont déjà inclus sur la page. S'ils ne le sont pas, nous ajoutons dynamiquement ce qu'ils n'ont pas pour notre besoin. (Il pourrait y avoir d'autres problèmes avec cette approche, mais nous aborderons ces problèmes lorsque nous y arriverons.)
Résumé
window.angular
retourne indéfinie. J'ai eu du succès en détectant Angular2 en utilisant:
window.ng