我无法将DynamicComponentLoader注入组件的构造函数中。我在运行时收到以下错误消息。 Angular类型定义和Angular实现是v2.0.0-39。它被定义为angular2.d.ts文件中的一个接口。
错误:无法解析MyAppComponent的所有参数(?,?)。确保它们都有有效的类型或注释。
以下是编译设置:
tsc -w -m commonjs -t es5 --emitDecoratorMetadata -experimentalDecorators app.ts
我错过了什么?
app.ts
/// <reference path="typings/angular2/angular2.d.ts" />
import {Component, View, bootstrap, DynamicComponentLoader, ElementRef } from 'angular2/angular2';
@Component({
selector:'my-app'
})
@View({
template: '<h1>Hello {{name }}</h1>'
})
class MyAppComponent{
name: string;
constructor(loader: DynamicComponentLoader, elem: ElementRef) {
this.name='World';
}
}
bootstrap(MyAppComponent);
的index.html
<!-- index.html -->
<html>
<head>
<title>Angular 2 Demo</title>
<script src="https://github.jspm.io/jmcriffey/bower-traceur-runtime@0.0.91/traceur-runtime.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/systemjs/0.18.4/system.src.js"></script>
<script>
System.config({
defaultJSExtensions: true
});
</script>
<script src="https://code.angularjs.org/2.0.0-alpha.39/angular2.dev.js"></script>
</head>
<body>
<my-app></my-app>
<script>System.import('app');</script>
</body>
</html>
答案 0 :(得分:0)
目前您需要使用{{1}}。有关详细信息,请参阅aggregate。
{{1}}
答案 1 :(得分:0)
你的代码工作得很好。我试图通过复制和粘贴它在我的机器上运行它。请参见下面的屏幕截图,它完美地注入了DynamicComponentLoader。我没有看到任何代码问题。我能想到的唯一区别是打字稿编译器,因为我使用以下参数编写了intelij idea。 --experimentalDecorators --target es5 --experimentalDecorators --emitDecoratorMetadata true --module commonjs