2016-05-20 6 views
3

ich asign JSON Eigenschaftsnamen müssen dynamisch, also versuchte ich mit computed property names:Berechnete Eigenschaftsnamen. "Schluck-Winkel filesort: unerwartetes Token ["

var dynamicNameProperty = (!irrelevantCondition) ? "name1" : "name2"; 

var element = { 
    "oneStaticNameProp":"Hi!", 
    [dynamicProperty] : "Oh oh... This produces an error." 
}; 

... aber, wenn ich laufe gulp serve ich den nächsten Fehler:

Error in parsing: "main\templates\dashboard\dashboard.controller.js", Line 160: Unexpected token [ 

error gulp-angular-filesort

habe ich versucht, auch mit bracket notation:

var dynamicNameProperty["name"] = (!irrelevantCondition) ? "name1" : "name2"; 

var element = { 
    "oneStaticNameProp":"Hi!", 
    dynamicNameProperty["name"] : "Oh oh... This produces an error too." 
}; 

Aber ich den gleichen Fehler ... Also habe ich versucht, Glück mit dot dotation versuchen:

var myObject = { 
    dynamicNameProperty: (!irrelevantCondition) ? "name1" : "name2" 
}; 

var element = { 
    "oneStaticNameProp":"Hi!", 
    myObject.dynamicNameProperty : "Oh oh... This produces an error too." 
}; 

Und ich bekomme einen ähnlichen Fehler:

Error in parsing: "main\templates\dashboard\dashboard.controller.js", Line 160: Unexpected token . 

Offensichtlich ... Etwas entkommt mir. Sie kennen keine Alternative oder Lösung?


WARNING: This is only an example of my problem: I can not and I do not want just use an if statement for the two states of dynamicNameProperty

+0

Ich denke, meine Frage eine Änderung des Titels braucht ... – tomloprod

Antwort

3

Sie können die dynamicNameProperty hinzufügen nach das 'Element' Objekt erstellt wird:

var dynamicNameProperty = (!irrelevantCondition) ? "name1" : "name2"; 

var element = { 
    "oneStaticNameProp":"Hi!" 
}; 

element[dynamicNameProperty] = "Yay....no error here!"; 
+0

Wow! Ich wusste, dass mir etwas entgeht :) Das war das einzige, was ich nicht versucht habe! Vielen Dank. – tomloprod