我想创建一个组件装饰器,在其中创建一个与另一个装饰器相关联的类属性;在这种情况下@ViewChildren。
export function LazyLoader() {
return (constructor: Function) => {
/***/
Object.defineProperty(constructor, 'lazyComponentDirectives', {
@ViewChildren()/*Somehow*/
set(value) {
/***/
},
});
/***/
};
}
及其用途
@Component({/***/})
@LazyLoader
class MyComponent implements OnInit, AfterViewInit {
}
我想避免在 angular 组件中包含任何与 LazyLoader 机制相关的代码,但将所有代码都保留在装饰器中。我可以通过从基类继承组件来实现,但我想知道装饰器方法是否可行。