通常、一連のページを含むユースケースの場合、最終段階またはページでデータをサーバーに送信します。このシナリオでは、状態を維持する必要があります。以下のスニペットでは、クライアント側の状態を維持しています
上記の投稿で述べたように。セッションは、ファクトリレシピを使用して作成されます。
クライアント側のセッションは、バリュープロバイダーのレシピを使用して維持することもできます。
詳細については、私の投稿を参照してください。
session-tracking-in-angularjs
さまざまなページ/angularjsコントローラーで維持する必要のあるショッピングカートの例を見てみましょう。
通常のショッピングカートでは、さまざまな商品/カテゴリページで商品を購入し、カートを更新し続けます。手順は次のとおりです。
ここでは、「バリュープロバイダーレシピ」を使用して、カートを内部に持つカスタムインジェクタブルサービスを作成します。
'use strict';
function Cart() {
return {
'cartId': '',
'cartItem': []
};
}
// custom service maintains the cart along with its behavior to clear itself , create new , delete Item or update cart
app.value('sessionService', {
cart: new Cart(),
clear: function () {
this.cart = new Cart();
// mechanism to create the cart id
this.cart.cartId = 1;
},
save: function (session) {
this.cart = session.cart;
},
updateCart: function (productId, productQty) {
this.cart.cartItem.push({
'productId': productId,
'productQty': productQty
});
},
//deleteItem and other cart operations function goes here...
});