我正在尝试为 Angular 2 设置一个非常基本的功能结构。它将只有最基本的 API 元素,以便随着框架的进步,我可以改进我的结构。
目前,对于如何执行传递服务的简单行为,我束手无策。下面是一些示例源代码,取自最近的 ExplainedTyped 文件的注释:
class Greeter {
greet(name: string) {
return 'Hello ' + name + '!';
}
}
@Component({
selector: 'greet',
appInjector: [Greeter]
})
@View({
template: `{{greeter.greet('world')}}!`
})
class HelloWorld {
greeter: Greeter;
constructor(greeter: Greeter) {
this.greeter = greeter;
}
}
bootstrap(HelloWorld);
如您所见,我在此示例中使用的是 Typescript 1.5。
我尝试使用 和 将服务注入到组件Greeting
注释hostInjector
中。我还尝试将它添加到引导调用的第二个参数中,如.injectibles
appInjector
bootstrap(HelloWorld, [Greeter])
在所有情况下,当我尝试在浏览器中运行它时都会收到此错误消息:
Token(ComponentRef) 实例化期间出错!。原始错误:无法解析 HelloWorld(?) 的所有参数。确保它们都具有有效的类型或注释。
当然,如果我greeter: Greeter
从构造函数中删除参数,则相关错误就会消失,并被其他预期的错误所取代。
想法?
编辑
我更新了这个问题的标题以指定我使用的是 TypeScript 1.5