2016-05-04 8 views
1

Hier ist eine vereinfachte Klasse. Ich versuche, Schlüsselwerte im Konstruktor zu durchlaufen, um diesem dynamisch Werte zuzuweisen. Aber es funktioniert nicht. Ist es ein Syntaxproblem? Oder ist das nicht möglich?Dynamisch Werte in "this" in Typoskript Klassenkonstruktor

class DirectoryModel { 

    public link_title: string 
    public link_desc: string 

    constructor(fields: any) { 
     console.log(fields) // ok 
     _.forOwn(fields, function (value, key) { 
      console.log(key) // ok 
      console.log(value) // ok 
      this[key] = value // "Cannot set property 'link_title' of undefined" 
     }) 

     // this.link_title = fields.link_title 
     // this.link_desc = fields.link_desc 
    } 
} 
+1

Sie nicht, die binden müssen, die funktionieren? Sonst wird das "This" wahrscheinlich "Fenster" sein. – yelsayed

Antwort

1

Wie Yasser kommentierte this auf Ihre DirectoryModel nicht gebunden. Verwenden Sie arrow functionsthis zu Ihrer Instanz zu binden:

class DirectoryModel 
{ 

    public link_title: string 
    public link_desc: string 

    constructor(fields: any) 
    { 
     _.forOwn(fields, (value, key) => //This binds `this` 
     { 
      this[key] = value 
     }) 
    } 
}