我正在玩Angular2 beta tutorials,并发现ES6导入模块的新方式有多么壮观。 systemjs。
然而,我无法让它发挥作用。
一切正常,直到你有二级页面,system.js只配置为第一级页面
此处是plnkr,问题为http://plnkr.co/edit/afsJY6tzrSeYMOtzUnXQ?p=preview
一旦运行,如您所见,主页有效,但第二级页面无效。
必须是systemjs配置的东西,我有我的解释,我完全理解为什么它不起作用,我找到了一个解决方法,但我不喜欢它,你能不能指出我正确的方法?
这一部分:
System.import('app/boot').then(null, console.error.bind(console));
可以通过
轻松修复System.import('/app/boot.js').then(null, console.error.bind(console));
然后在boot.ts中
import {bootstrap} from 'angular2/platform/browser'
import {AppComponent} from './app.component'
bootstrap(AppComponent);
我不知道如何修复' ./ app.component'因为如果我做了' ../ app / app.component.js'打字稿编译器会指责,那么,正确的策略如何?
答案 0 :(得分:0)
我不确定推荐的方式是什么,因为我还是初学者,但一种方法是将地图添加到配置中:
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
},
map: {
app: '../app' // <--
}
});
当您在本地运行时,您可以将相对../app
替换为类似/app
的绝对值。