簡體   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