我需要动态设置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 [
我也尝试使用 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语句}
答案 0 :(得分:3)
您可以在创建'element'对象后添加dynamicNameProperty :
var dynamicNameProperty = (!irrelevantCondition) ? "name1" : "name2";
var element = {
"oneStaticNameProp":"Hi!"
};
element[dynamicNameProperty] = "Yay....no error here!";