我正在尝试运行Angular 2 Alpha 45('https://code.angularjs.org/2.0.0-alpha.45/angular2.dev.js'),但它在“es6Promise._setAsap”处失败,说es6Promise未定义。
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="javascripts/system.js"></script>
<script>
System.config({
map: {
'es6-shim':'javascripts/es6-shim.js',
'angular2/angular2': 'javascripts/lib/angular2.alpha.45.dev.js'
}
});
System.import('es6-shim').then(function(){
System.import('javascripts/app.js');
});
</script>
</head>
<body>
<my-app>Loading...</my-app>
</body>
</html>
当前页面是:
import {Component, bootstrap} from 'angular2/angular2';
@Component({
selector: 'my-app',
template: '<h1>My First Angular 2 App b</h1>'
})
class AppComponent { }
bootstrap(AppComponent);
app.js包含示例文件的转换,其中包含:
compile "io.dropwizard.metrics:metrics-core:3.1.0"
compile "io.dropwizard.metrics:metrics-servlet:3.1.0"
compile "io.dropwizard.metrics:metrics-healthchecks:3.1.0"
问题是: 为什么require('es-promise')返回一个空对象? 我正在使用app.js的简单打字稿导出,而不是angular.io谈论的systemjs。
我想我错过了一些东西,可能是浏览器的ES6垫片或其他版本的angular2?
答案 0 :(得分:1)
显然有另一个小时的搜索 - 我不知道为什么在Angular的当前文档中没有明确说明 - 有一个 SystemJs配置问题:
缺少angular2在其脚本中使用特定格式的事实,您必须明确设置它。
HTML代码中的最终脚本如下所示:
<script src="javascripts/system-polyfills.js"></script>
<script src="javascripts/system.js"></script>
<script>
System.config({
paths:{"*":"../*.js"},
map: {
'angular2/angular2': 'javascripts/lib/angular2.dev',
'crypto':'javascripts/crypto'
},
meta: {
'angular2/angular2':{
format: 'register'
}
}
});
System.import('javascripts/app');
</script>
其他信息: