2015-09-01 2 views
0

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

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

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

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

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

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

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

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

Благодаря

ответ

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 
+0

Спасибо за это. Однако проблема, с которой я сталкиваюсь сейчас, состоит в том, что структура объекта изменилась, теперь ключи содержат неопределенные значения. Мне может потребоваться изменить, как теперь эти значения назначаются для обслуживания новой структуры, если нет другого способа сделать это. – Robert

Смежные вопросы