2014-01-08 2 views
8

Ich schreibe einen XML-Loader/Parser (und neu in Typoskript), ich kann die XML-Ordnung laden, aber ich versuche, die XML-Daten wieder in eine Klasse zu analysieren /Objekt. Das Problem ist, ich möchte eine Klasse mit einer String-Variablen erstellen; dh var classNameString:String = "className";erstellen Sie eine neue Klasse mit einem String-Namen in Typoskript

var newClass:any = new class(classNameString)

von meinen vielen Durchsuchungen im Internet erscheint es nicht möglich, und ich werde die Klassennamen haben, hart zu codieren. Jede Hilfe würde sehr geschätzt werden.

+2

Es klingt wie [Dynamische Laden einer Typoskript-Klasse (Reflektion für Typoskript)] (http://stackoverflow.com/a/15339429/629118). –

+0

das ist die eine, vielen Dank! – user3171294

Antwort

17

Wenn Sie einen bestimmten Namespace haben, für die ganze Klasse, die Sie erstellen möchten, können Sie dies tun:

var newClass: any = new MyNamespace[classNameString](parametersIfAny); 

und wenn sie im Standard-Namespace sind, können Sie einfach verwenden window:

var newClass: any = new window[classNameString](parametersIfAny); 
+1

funktioniert super ... schön und sauber! – born2net

+0

funktioniert das auch in nodejs? –

+0

@JaumeMussonsAbad: Versuchen Sie es und lassen Sie es mich wissen. Unter der Annahme, dass nodejs immer noch Standard-Instanz-Erstellung verwendet, sollte es funktionieren (der Namespace ist korrekt). –

Verwandte Themen