在 AngularJS 应用程序(普通旧 ES5)中使用 Angular 2 组件(TypeScript)

Use Angular2 componets (TypeScript) in AngularJS application (plain old ES5)

我在使用 requireJS 的 ES5 angularJS 应用程序中尝试使用 angular2 组件时遇到了麻烦。当我使用 angular2.dev.sfx.js 时,我可以使用以下代码进行引导:

define([
'nxApp',
'nxRoute',
 ], 
   function(nxApp, nxRoute){
     var upgradeAdapter = new ng.UpgradeAdapter();
     upgradeAdapter.bootstrap(document.body, ['nxApp']);
     return upgradeAdapter;
});

但是我无法在打字稿中使用 import {Component} from 'angular2/angular2' ,因为这会转换为 define(['angular2/angular2']... 这反过来会导致脚本错误无法加载脚本,因为 requireJS 在应用程序根文件夹中搜索 angular2.js,但它不存在。

当我使用 angular2.dev.js 和 system.js 时,TypeScript 可以工作,但我无法在我的 es5 bootsrapping 代码中获得 angular 2 的引用。 ng ist not defined an trying to place angular2/angular2 in the define throws me an an error that the common module has not been loaded.

是否可以在 ES5 应用程序中使用 angular2 个打字稿组件?

谢谢。

我必须转换 ES5 Javascript 部分才能使用 System.js。它具有与 RequireJs 类似的配置,shims 必须替换为 meta

有了它,我可以加载 angular2.dev.js 和 system.js,如 angular 2 快速入门中所示。然后可以使用 require('angular2/angular2') 从 ES5 javascript.

中获取 angular2