DynamicLoaderComponent未被识别为类型

时间:2015-10-08 20:15:42

标签: angular typescript

我无法将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>

2 个答案:

答案 0 :(得分:0)

目前您需要使用{{1}}。有关详细信息,请参阅aggregate

{{1}}

答案 1 :(得分:0)

你的代码工作得很好。我试图通过复制和粘贴它在我的机器上运行它。请参见下面的屏幕截图,它完美地注入了DynamicComponentLoader。我没有看到任何代码问题。我能想到的唯一区别是打字稿编译器,因为我使用以下参数编写了intelij idea。 --experimentalDecorators --target es5 --experimentalDecorators --emitDecoratorMetadata true --module commonjs

Screenshot shot of debug