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

时间:2015-11-27 15:33:03

标签: angular requirejs

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

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

但是我无法使用来自' angular2 / angular2'的导入{Component}。在打字稿中,因为这会转换为定义([' angular2 / angular2'] ...这会导致脚本错误,因为无法加载脚本beacuse requireJS在app根目录中搜索angular2.js文件夹但它不存在。

当我使用angular2.dev.js和system.js时,TypeScripts可以工作,但我无法在es5 bootsrapping代码中获得角度2的引用。 ng不再定义试图在定义中放置angular2 / angular2会引发我的错误,即公共模块尚未加载。

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

我可以加载angular2.dev.js和system.js,因为它显示在angular 2 Quickstart中。然后,require('angular2 / angular2')可用于从ES5 javascript中获取angular2。