2017-04-21 76 views
0

我有三個模塊app.root,app.shell,app.shop。它像查看不更新2模塊angularjs

.module('app.root',['app.shell,'app.shop']) 

在app.shop,我在餅乾

vm.add = function(tensp,gia,img){ 
        var item = { 
        tensp : tensp, 
        gia : gia, 
        img : img 
        }; 

    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])); 
     } 

在app.shell添加項目,我在HTML顯示它

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

這個問題是不是觀點更新。它只在刷新頁面時更新。我的錯在哪裏?請幫我

+1

嗨,請添加您的完整視圖和控制器。 – lin

+0

嗨。當我創建一個plnkr時,karim解決了我的問題。但是,嗨,我嗨^^ –

回答

1

你沒有發佈整個代碼,但試圖猜測問題,我認爲你應該觀看cookie數組的任何改變,獲取新值,然後更新視圖。

$scope.$watch(function() { 
return $cookies.cart; //watch the cart array 
}, function(newValue) { 
    vm.cookies = JSON.parse(newValue); 
}, true); 

在你的代碼,你只取一次數據,請記住,在車陣是原來的一個副本,而不是引用。

vm.cookies = JSON.parse($cookies.getObject('cart')); //this is a copy of the array 
{{vm.cookies.length}} //view 
+0

嗯,我正在讓一個笨蛋回答他。但你更快,無論如何這裏是猛擊:https://plnkr.co/edit/gkmFeHCMkMCBVgDDrGJs?p=preview – JeanJacques

+0

希望它能解決他的問題;) – Karim

+0

許多感謝。我會嘗試 。這是我的plnkr我創建https://plnkr.co/edit/hsb8AT6jaBY07fgC2gFS?p=preview –