繁体   English   中英

如何访问使用装饰器的对象?

[英]How to access the object that used Decorator?

我想通过使用装饰器注入一些需要来自许多组件的HTML元素。 这是我要实现的用法:

const serializedCSS = '...';    // Serialized CSS

@injectStyle(serializedCSS);
class MyComponent extends HTMLElement {
   ...

我想将序列化的CSS发送给Decorator,但是我找不到如何访问“ MyComponent”类的方法,我必须访问它自己的属性才能创建新的样式元素并追加为子元素。

function injectStyle(target: any) {
    console.log(target);

    // ??? HOW TO ACCESS THE OBJECT? ///

    function f(...args:any) {

    }

    return f;
}

我找不到与此相关的任何解决方案。 任何建议将不胜感激!

这是我的解决方案。

export function injectStyle(css:string, ...args:any) {
    return function(target:any) {
        // Now I can access target object with "target"!
        target.doSomething ... 
        ...
    };
}

现在,我可以使用injectStyle装饰器,如下所示:

@injectStyle(require('./style.css'))
class App extends HTMLElement {
    ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM