angular - 引用在 Angular 中调用的装饰类的实例
问题描述
我有一个这样的装饰班。
@BlingBling
@Component({ ... })
export class Classico implements OnInit {
processId: string;
}
装饰器是这样实现的。
export function BlingBling(ctor: Function) {
console.log("Wheheee");
console.log(ctor);
console.log(this);
}
我可以看到我可以看到构造函数(并且可能也调用它),但我没有成功访问正在创建的类的实例。我试过了,但它是undefined。没有更多的想法,谷歌搜索没有产生我认为有用的东西。
我想从装饰器(记录目的)向processId字段推送一个值。我可以想象从构造函数中这样做,但这似乎创建了一个我不想创建的依赖项。
编辑 我发现这个博客作者建议使用下面的语法来实现它,但我不确定这是否是正确的方法,因为他放弃了将构造函数传递给装饰器代码的语法。
function Console(message) {
console.log(message);
return function(target) {
console.log('Our decorated class', target);
};
}
@Console('Hey!')
class ExampleClass {
constructor() {
console.log('Yo!');
}
}
如果它是我们当时处理的类还是类的实例,我也感到困惑。我们是否已经覆盖了原来的构造函数?
解决方案
推荐阅读
- php - 来自 postfix 的电子邮件在 gmail 上被标记为垃圾邮件
- r - 如何在 R 中的条形图标签上添加 $ 符号?[包括图像和代码]
- javascript - 不推荐使用 jsapi 加载程序加载 Maps API
- angular - Angular 中的自动完成指令
- javascript - Highstock:如何禁用 rangeSelector 响应规则以在元素之间断线?
- java - 使用反射访问 Kotlin Data 类时出现 NoSuchMethodException
- python - PyQt5小部件旨在透明显示QVideoPlayer通过视频并采用QMainWindow背景
- r - 使用两列(字符变量)唯一拆分
- python - 具有多个数据库的大规模金字塔应用程序
- swift - 为什么保存托管对象上下文更改 isDeleted 值?