4

私は backbone.js から始めたばかりで、モデリングの概念に頭を悩ませようとしています。バックボーン js を使用してショッピング カート アプリを作成し、サード パーティの REST API (レールではなく、変更できません) とやり取りしたいと考えています。

これは、カートの内容を取得するための 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") のモデルを作成し、それらのモデルのコレクションをモデル化し、それらのコレクションと集計データを含むバスケット モデルを作成する必要がありますか? 私はこれにアプローチする方法がわかりません...

4

1 に答える 1

4

あなたは本当にこれを好きなように行うことができます。アイテムや価格調整データにアクセスする以外に何もする必要がない場合は、JavaScriptオブジェクトのままにしておきます。そのデータを変換して操作する関数を定義したい場合は、モデルを定義ItemPriceAdjustmentます。

もちろん、モデルには、これらのモデルを含むバックボーンコレクションとShoppingCart呼ばれる属性を含めることができます。それらをモデルとして定義しないことになった場合は、通常の配列のままにしておきます。itemspriceAdjustments

バックボーンモデルを作成するのは簡単なので、最初からバックボーンモデルとして定義する必要があると判断する手間を省くことができるので、私はバックボーンモデルの作成を誤る傾向があります。

簡単に言うと、おそらくShoppingCartバックボーンItemsを含むモデルと、モデルをPriceAdjustments含むコレクションItemになりPriceAdjustmentます。つまり、sのshoppingCart.get('items')コレクションを返しますItem

于 2012-07-26T19:08:18.517 に答える