计算属性名称。 “gulp-angular-filesort:意外令牌[”

时间:2016-05-20 17:51:13

标签: javascript angularjs parsing gulp ecmascript-6

我需要动态设置JSON属性名称,所以我尝试使用 computed property names

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

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

...但是,当我运行 gulp serve 时,我收到了下一个错误:

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

error gulp-angular-filesort

我也尝试使用 bracket notation

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

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

但我得到同样的错误......所以我试着用 dot dotation 来试试运气:

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

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

我得到了类似的错误:

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

显然......有些事情正在逃避我。您知道任何替代方案或解决方案吗?

  

警告:这只是我的问题的一个例子:我不能而我不希望只对{{1}的两个状态使用if语句}

1 个答案:

答案 0 :(得分:3)

您可以在创建'element'对象后添加dynamicNameProperty

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

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

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