Detecta si Angular2 está cargado en una página al usar Systemjs

Estoy intentando descubrir una buena (preferiblemente la mejor) forma de detectar si angular2 está cargado en la página.

Eché un vistazo a esta pregunta: Formas de detectar si AngularJS está cargado en la página actual o no , pero la respuesta simplemente indica usar window.angular , que es lo primero que intenté (mucho antes de encontrar esa respuesta). Parece como si systemjs estuviera causando que angular no esté en el ámbito global (window).

Aquí está el encabezado de mi file 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> 

Basado en esta pregunta , y mi comprensión de http2, no veo una razón real para no usar systemjs.

Obviamente, puedo estar equivocado, el sistema puede no ser la causa del problema; independientemente, window.angular devuelve indefinido a pesar de que estoy mirando mi aplicación angular.

Para darle nuestro caso de uso, en caso de que sea de ayuda, estamos cargando una aplicación angular a través de un file init que se utilizará en otros sitios web (donde no controlamos la página en la mayoría de los casos). Queremos que nuestro file init sea capaz de detectar si angular2 (y la versión adecuada) entre otras dependencies ya están incluidas en la página. Si no lo son, estamos agregando dinámicamente lo que no tienen para nuestra necesidad. (Puede haber algunos otros problemas con este enfoque, pero abordaremos esos problemas cuando lleguemos allí).

Resumen

  1. Necesitamos detectar si angular está cargado en la página y qué versión.
  2. Usando systemjs, window.angular regresa indefinido.
  3. La aplicación angular funciona bien y sin problemas.
  4. Con http2, no vemos la necesidad de no cargar angular usando systemjs, pero no nos oponemos a cambiar eso si es necesario.

Tuve éxito detectando Angular2 usando:

 window.ng