如何使用动态名称

时间:2015-09-01 17:07:18

标签: javascript php json magento prototypejs

我试图找到一种方法来更改具有动态名称的JSON对象中的值。

例如,模板中的修改后的对象现在看起来像这样:

var optionsPrice_<?php echo $_product->getId() ?> = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>);

我必须使这个变量独一无二,因为页面上有多个产品,我们需要单独定位每个产品。

然后使用以下函数在函数中修改此对象:

optionsPrice.changePrice('config', {'price': price, 'oldPrice': oldPrice});

如何访问动态对象然后进行修改?我不想改变JS的大部分内容来实现这一点。

我考虑过将名称保留为'optionsPrice',然后遍历所有对象并根据它们包含的ID修改正确的对象。但这似乎不是很有效。

由于

1 个答案:

答案 0 :(得分:1)

您可以使用对象而不是单个变量:

var optionsPrice = {}
optionsPrice[<?php echo $_product->getId() ?>] = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>);

然后您可以将其引用为:

console.log(optionsPrice[YOUR_ID_HERE]);
console.log(optionsPrice["20"]); // Example