Détectez si Angular2 est chargé sur une page lors de l'utilisation de Systemjs

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é

  1. Nous devons détecter si l'angulaire est chargé sur la page et quelle version.
  2. En utilisant systemjs, window.angular retourne indéfinie.
  3. L'application angulaire fonctionne bien et sans problème.
  4. Avec http2, nous ne voyons pas la nécessité de ne pas charger angulaire en utilisant systemjs, mais nous ne sommes pas opposés à changer cela si nécessaire.

J'ai eu du succès en détectant Angular2 en utilisant:

 window.ng