我有一个自定义组件的装饰器:
export const MyDecorator = () => {
return (constructor: Function) => {
constructor.prototype['ngAfterViewInit'] = function() {
// I need to get component's view child here
};
};
};
我需要在装饰器内部获取一个view子元素。在组件中,我可以使用@ViewChild装饰器获取该元素:
@MyDecorator()
@Component({
selector: "app-my-component",
templateUrl: "./my-component.html"
})
export class MyPage {
@ViewChild(Content) content: Content;
}
如何在MyDecorator中获取内容元素?
答案 0 :(得分:1)
在初始化之前无法引用组件的DOM。如果使用类装饰器,则无法对不存在的文档结构进行操作。我建议将这种逻辑转移到组件中。
通过属性装饰器,您可以将DOM元素作为参数传递。