Как обновить объект Json с динамическим именем

Я пытаюсь найти способ изменить значения в объекте JSON с динамическим именем.

Например, мой измененный объект в шаблоне теперь выглядит так:

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

Я должен сделать эту переменную уникальной, так как на странице есть несколько продуктов, и нам нужно настроить таргетинг на каждый из них в отдельности.

Этот объект затем изменяется внутри функции с помощью:

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

Как я могу получить доступ к динамическому объекту и затем изменить его? Я не хочу переходить на большую часть JS, чтобы заставить это работать.

Я думал о сохранении имени как «optionsPrice», а затем циклически перебираю все объекты и модифицирую правильный, основываясь на идентификаторе, который они содержат. Это не кажется очень эффективным, хотя.

Спасибо

0

Решение

Вы можете использовать объект вместо одной переменной:

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
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]