Was mache ich falsch? Ich habe das Setup folgende Dekorateur Funktionen Metadaten über eine Klasse zu halten, und sie beide so aussehen (man die Daten zu setzen und ein um die Daten zu erhalten):Reflect Decorator speichert keine Daten für ein Objekt
function setComponentMenu(text: string): any {
return Reflect.metadata('componentPath', text);
}
function getMenuPath(target: any): any {
return Reflect.getMetadata('componentPath', target);
}
ich dann wie folgt aus bin, und die customEditor
Dekorateur funktioniert gut, und stellt eine Instanz der Klasse CameraEditor
in Globals.editors
:
@customEditor(Camera)
@setComponentMenu('Renderers/Camera')
class CameraEditor extends Editor {
}
Nachdem der Wert eingestellt wurde, und ich versuche, es so zu kommen:
for(let i = 0; i < Globals.editors.length; i++){
let editor: Editor = Globals.editors[i];
let path = getMenuPath(editor);
console.log(path);
}
Ich bekomme undefined
, das ist in Ordnung für Elemente, die nicht die @setComponentMenu
haben, aber die CameraEditor
hat es so, ich würde erwarten, dass die Konsole Renderers/Camera
angezeigt wird.
Was ist los?
Vielen Dank! Das funktioniert einfach perfekt! Ich habe dein zweites Beispiel mit dem Prototyp verwendet, und das macht den Trick! –