【问题标题】:How to update Json object with dynamic name如何使用动态名称更新 Json 对象
【发布时间】:2015-11-27 00:35:36
【问题描述】:

我正在尝试找出一种方法来更改具有动态名称的 JSON 对象中的值。

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

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

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

然后在函数中使用以下方法修改该对象:

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

如何访问动态对象然后对其进行修改?我不想改变很多 JS 来让它工作。

我曾考虑将名称保留为“optionsPrice”,然后循环遍历所有对象并根据它们包含的 ID 修改正确的对象。不过这似乎效率不高。

谢谢

【问题讨论】:

    标签: javascript php json magento prototypejs


    【解决方案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
    

    【讨论】:

    • 谢谢。但是我现在遇到的问题是因为对象结构已经改变了键现在包含未定义的值。除非有其他方法,否则我可能需要修改现在分配这些值的方式以适应新结构。
    猜你喜欢
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    相关资源
    最近更新 更多