我正在尝试在Angular2 alpha31中添加Parent注释。
我使用这个import语句:
import {Parent} from 'angular2/annotations';
我还在angular2.d.ts中添加了以下内容:
declare module "angular2/annotations" {
function Parent(): (target: any) => any;
function Ancestor(): (target: any) => any;
}
我的.ts文件如下所示:
/// <reference path='../../../../../typings/angular2/angular2.d.ts' />
import {Component, View} from 'angular2/angular2';
import {Parent} from 'angular2/annotations';
import {Messenger} from 'components/messenger/messenger';
@Component({
selector : 'compose',
hostInjector : [Messenger]
})
@View({
templateUrl: 'components/compose/compose.html'
})
export class Compose {
title : string;
message : string;
messenger : Messenger;
constructor(@Parent messenger:Messenger){
this.messenger = messenger;
}
}
但我一直在接受:
未捕获的TypeError:装饰器不是函数
我错过了什么? :)
谢谢!
答案 0 :(得分:1)
我发现了问题:
constructor(@Ancestor @Inject(forwardRef(() => Messenger)) messenger : Messenger) {
this.title = "I am the composer! I am child element of Messenger"
}
使用此功能并删除&#34; hostInjector:[Messenger]&#34;解决了我的问题。感谢您的建议。
答案 1 :(得分:0)
我相信在alpha-37中这样做的方法是@Host。
constructor(@Host() tabs:Tabs)
而不是@Parent
,这对我来说至少证明是成功的。