2012-07-26 93 views
4

我刚刚开始与backbone.js并试图围绕建模概念。我想用骨干js来创建一个购物车应用程序,与第三方REST api(不是rails,不能修改)接口。backbone.js模型可以包含多个集合吗?

这是GET车内容JSON响应例如:

 { 
      "_v" : "12.3", 
      "currency" : "USD", 
      "product_sub_total" : 96.00, 
      "product_total" : 86.00, 
      "shipping_total" : null, 
      "tax_total" : null, 
      "order_total" : null, 
      "product_items" : 
      [ 
      { 
       "product_id" : "123", 
       "item_text" : "Product foo", 
       "quantity" : 2.00, 
       "product_name" : "foo", 
       "base_price" : 30.00, 
       "price" : 60.00 
      }, 
      { 
       "product_id" : "456", 
       "item_text" : "Product foo", 
       "quantity" : 1.00, 
       "product_name" : "bar", 
       "base_price" : 40.00, 
       "price" : 40.00, 
       "price_adjustments" : 
       [ 
       { 
        "promotion_id" : "10% off", 
        "promotion_link" : "http://example.com/dw/shop/v12_3/promotions/10_percent_off", 
        "item_text" : "10% off", 
        "price" : -4.00 
       } 
       ] 
      } 
      ], 
      "order_price_adjustments" : 
      [ 
      { 
       "promotion_id" : "10$ off", 
       "promotion_link" : "http://example.com/dw/shop/v12_3/promotions/10_bugs_off", 
       "item_text" : "10$ off", 
       "price" : -10.00 
      } 
      ] 
     } 

望着这JSON数据,也有像“product_total”和“shipping_total”数据的聚集体件,并有包含在列表如“product_items”和“order_price_adjustments”。即使是单个“product_items”也可以嵌套“price_adjustments”列表。

如何在backbone.js中建立购物车模型?我应该为我看到的每个散列(“product_item”,“price_adjustment”)创建一个模型,然后对这些模型的集合进行建模,然后制作一个包含这些集合以及聚合数据的篮子模型?我不知道如何处理这...

+0

我是Backbonejs的新手,但我非常确定Collections是一组多个模型。而不是相反。 – 2015-01-13 01:27:50

回答

4

你可以真正做到这一点,无论你想。如果您不需要对任何项目或价格调整数据进行任何操作,只需将其保留为JavaScript对象即可。如果你想定义函数来转换和处理这些数据,我会定义ItemPriceAdjustment模型。

当然,你的ShoppingCart模型可以有属性称为itemspriceAdjustments它们是含有这些模型骨干集合。如果最终没有将它们定义为模型,只需将它们保留为普通数组即可。

我倾向于在创建Backbone模型方面犯错,因为这样做是微不足道的,并且将为您节省进一步的麻烦,决定您应该首先将它们定义为骨干模型。

简单,我可能会用ShoppingCart模型骨干Items和含ItemPriceAdjustment模型PriceAdjustments集合结束。即shoppingCart.get('items')将返回您的收藏Item s。

相关问题