【问题标题】:How to create editable cart items如何创建可编辑的购物车项目
【发布时间】:2015-12-02 21:10:01
【问题描述】:

我正在构建一个购物车。下面我的display object 是购物者可用的数据。 cart object 代表购物车中的购物者选择。我遇到的问题是,假设有人想编辑购物车中的商品并更改其大小。 sizes 在购物车项目中不再可用,因为我已经选择了一个尺寸并杀死了其余的。

// display object
{
    "sizes": [
        {
            "price": 4.99,
            "title": "s"
        },
        {
            "price": 5.99,
            "title": "m"
        },
        {
            "price": 6.99,
            "title": "l"
        }
    ],
    "desc": "here's our green hat",
    "title": "green hat"
}

// cart object
{
    "size": 
    {
        "price": 4.99,
        "title": "s"
    },
    "desc": "here's our green hat",
    "title": "green hat"
}

所以....我应该传递我的整个display object 并标记(以某种方式)选择了哪个选项吗?还是我缺少其他解决方案?

【问题讨论】:

  • 每个对象都包含所有可能的选项,您最终可能会得到大量冗余信息。为什么不将有关您的对象的信息保存在角度服务中(可以从数据库或某种后端提取)。然后是一种获取有关您的对象的信息并进行相应设置的方法?

标签: javascript angularjs shopping-cart javascript-objects


【解决方案1】:

如果您的购物项目经常变化,您必须从后端系统再次带来,以确保您的数据一致。此时最好调用数据库并获取所有大小的整个对象。此解决方案也更适合带来您的物品的当前状态(可能是尺寸 L 可用,但现在不是在决定更改后,因为它有大量的购买流量)

提示:您可以允许您的后端系统缓存经常调用的项目及其大小,以获得更好的性能结果。

但如果您的购物项目通常不可更改或不可更新,最好将所有尺寸的整个对象传递给新属性以识别所选对象。

【讨论】:

  • 对,但是有没有更好的方法来组织我的模型,以便更容易梳理以使用之前的输入重新填充新表单?
猜你喜欢
  • 1970-01-01
  • 2016-01-29
  • 2020-10-19
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 2019-05-25
  • 2017-12-25
  • 1970-01-01
相关资源
最近更新 更多