我在使用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打字稿组件?
感谢。
答案 0 :(得分:1)
我必须转换ES5 Javascript部分才能使用System.js。它具有与RequireJs类似的配置,shims
必须由meta
替换。
我可以加载angular2.dev.js和system.js,因为它显示在angular 2 Quickstart中。然后,require('angular2 / angular2')可用于从ES5 javascript中获取angular2。