2017-04-21 5 views
0

クッキーを追加しようとしています。うまくいきますが、ページを更新して新しいCookieを追加すると、古いCookieは消え、cookies.lengthは更新されません。ページを更新した後に更新されます。ここに私のコードです新しいクッキーを追加すると古くなったクッキーは消えます。

​​

そして、htmlで表示します。

vm.cookies = $cookies.getObject('cart'); 
{{vm.cookies.length}} 

どこが間違っていますか?私を助けてください 。ここは私のplnkrです https://plnkr.co/edit/StURuPuEBr8ykIUPdvBV?p=preview

+1

同じキー 'cart'に新しい値を追加すると、古い値が上書きされます。 'cart'以外のキーがない場合、クッキーの長さは常に1にする必要があります。これはあなたのスニペットに基づく私の推測です。問題を実証するためのシンプルなデモを作成することができれば、私は一見します。 – Hoa

+0

https://plnkr.co/edit/StURuPuEBr8ykIUPdvBV?p=previewここは私が作成するplnkrです。私はあなたが私の問題で正しいと思います。同じキーに新しい値を追加するにはどうしたら上書きすることはできません。あなたはボタンをクリックしてスペースを押すと、私の問題を見ることができます(plnkr reload) –

答えて

1

ページを更新するたびに。 vm.cart[]に設定されます。 「追加」をクリックすると、vm.cartに1つの項目が追加されます。 vm.cartには1つのアイテムが含まれるようになりました。 vm.cartをクッキーに入れると、クッキー内の既存のアイテムはすべて上書きされます。

あなたは、クッキー内のすべてのアイテムを保持クッキーに直接アイテムを置くと

var item = { 
    id: id, 
    masp: masp, 
    tensp: tensp 
}; 

var cart = $cookies.getObject('cart'); 

if (cart) { 
    var items = JSON.parse(cart); 
    items.push(item); 

    $cookies.putObject('cart', JSON.stringify(items)); 
} else { 
    $cookies.putObject('cart', JSON.stringify([ item ])); 
} 

を次のようにクッキーから直接アイテムを取得したい場合はここでdemoです。

+0

パーフェクト。どうもありがとうございます ! –

関連する問題